Я пытаюсь заставить argparse игнорировать тот факт, что два обычно требуемых позиционных аргумента не следует оценивать, когда указан необязательный аргумент (-l
).
В основном я пытаюсь реплицировать поведение -help: когда вы указываете -h, все отсутствующие необходимые аргументы игнорируются.
Пример кода:
parser = argparse.ArgumentParser(description="Foo bar baz")
parser.add_argument('arg1', help='arg1 is a positional argument that does this')
parser.add_argument('arg2', help='arg2 is a positional argument that does this')
parser.add_argument('-l', '--list', dest='list', help='this is an optional argument that prints stuff')
options, args = parser.parse_args()
if options.list:
print "I list stuff"
И, конечно, если я запустил его сейчас, я получаю:
error: too few arguments
Я пробовал разные вещи, например nargs='?'
, но ничего не мог заставить работать.
Этот вопрос очень похож, но на него не ответил.
Любая помощь оценивается,
Спасибо,