в моем сценарии я пытаюсь обернуть исполняемый файл базара. Когда я читаю определенные опции, предназначенные для bzr, мой скрипт реагирует на это. В любом случае все аргументы затем передаются исполняемому файлу bzr. Конечно, я не хочу указывать все аргументы, которые bzr может обрабатывать внутри
мой сценарий.
Итак, есть ли способ обработки неизвестного количества аргументов с помощью argpase?
Мой код в настоящее время выглядит следующим образом:
parser = argparse.ArgumentParser(help='vcs')
subparsers = parser.add_subparsers(help='commands')
vcs = subparsers.add_parser('vcs', help='control the vcs',
epilog='all other arguments are directly passed to bzr')
vcs_main = vcs.add_subparsers(help='vcs commands')
vcs_commit = vcs_main.add_parser('commit', help="""Commit changes into a
new revision""")
vcs_commit.add_argument('bzr_cmd', action='store', nargs='+',
help='arugments meant for bzr')
vcs_checkout = vcs_main.add_parser('checkout',
help="""Create a new checkout of an existing branch""")
Опция nargs позволяет, конечно, столько аргументов, сколько я хочу. Но не другой неизвестный необязательный аргумент (например, --fixes или --unchanged).