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
для добавления к одному параметру аргумента?