Python的argparse选择几个可选参数之一

时间:2013-05-20 01:55:48

标签: python command-line-arguments argparse

我有一个可以按以下方式使用的程序:

program install -a arg -b arg
program list
program update

只能指定一个位置参数(installlistupdate)。 install场景中只能有其他参数。

argparse文档有点密集,我很难弄清楚如何正确地执行此操作。我的add_argument应该是什么样的?

1 个答案:

答案 0 :(得分:9)

这似乎您想使用subparsers

from argparse import ArgumentParser

parser = ArgumentParser()
subparsers = parser.add_subparsers()

install = subparsers.add_parser('install')
install.add_argument('-b')
install.add_argument('-a')
install.set_defaults(subparser='install')

lst = subparsers.add_parser('list')
lst.set_defaults(subparser='list')

update = subparsers.add_parser('update')
update.set_defaults(subparser='update')

print parser.parse_args()

正如文档中所述,我已与set_defaults结合使用,以便您可以知道调用了哪个subparser。