optparse: нет строки опций

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

Мое использование сценария было бы: script <filename>

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

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

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

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

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


person user225312    schedule 01.06.2010    source источник


Ответы (1)


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, чтобы вы получили их все.

person Tamás    schedule 01.06.2010
comment
Не могли бы вы объяснить, что делает process_file? - person user225312; 01.06.2010
comment
@ Альфред Я предполагаю, что process_file - это пример подпрограммы, используемой в качестве маркера того, куда поместить код, который фактически использует ваш ввод <filename>. - person Peter Farmer; 01.06.2010
comment
@Питер: Ага! Спасибо. Глупый я :) - person user225312; 01.06.2010