argparse выбирает аргумент добавления по умолчанию - PullRequest
0 голосов
/ 28 февраля 2019

tl; др Я могу пройти prog.py a b -opt 1 и prog.py -opt 1 a b.Я не могу передать prog.py a -opt 1 b.Я бы хотел.

С учетом настройки ArgumentParser, такой как

parser = argparse.ArgumentParser()
parser.add_argument(dest='arg', action='append', nargs='+')
parser.add_argument('-opt', dest='opt', action='store')

Я хочу, чтобы аргументы по умолчанию добавлялись к arg

prog.py a -opt 1 b

Я хотел бы, чтобы это вернулоськортеж аргумента (arg=[['a', 'b']], opt='1').Но передача аргументов с смешанными параметрами не удастся с сообщением об ошибке error: unrecognized arguments: b.

Однако передача аргументов в этом порядке завершится успешно:

prog.py a b -opt 1
prog.py -opt 1 a b

Я не могу смешать положение аргументов, предназначенных для arg.

Как я могу иметь откат ArgumentParser для добавления к одному параметру аргумента?

1 Ответ

0 голосов
/ 28 февраля 2019

Использование argparse.parse_intermixed_args.

Спасибо @hpaulj.

...