optparse: строка параметров отсутствует - PullRequest
1 голос
/ 01 июня 2010

Я пытаюсь использовать optparse, но у меня проблема.

Мой сценарий будет использовать: script <filename>

Я не собираюсь добавлять какую-либо строку параметров, например: script -f <filename> или script --file <filename>

Есть ли способ, которым я могу не передавать строку аргумента? Или я могу позволить пользователю сделать это:

script -f <filename> 
script --filename <filename>
script <filename>

Все вышеперечисленное с одинаковыми последствиями?

Я знаю, что я могу легко сделать это с помощью argv[1], но дело в том, что мне может понадобиться добавить поддержку командной строки позже в проекте и добавить, что я не хочу добавлять поддержку optparse во всем , Вот почему я хочу использовать optparse.

1 Ответ

1 голос
/ 01 июня 2010
import optparse

parser = optparse.OptionParser()
parser.add_option("-f", "--filename", metavar="FILE", dest="input_file", action="append")
options, args = parser.parse_args()
if options.input_file:
    args.extend(options.input_file)

for arg in args:
    process_file(arg)

Это будет просто использовать args в качестве списка входных файлов, но он добавит имена файлов, переданные как -f или --filename аргументы, к args, так что вы получите все из них.

...