我有一个可以按以下方式使用的程序:
program install -a arg -b arg
program list
program update
只能指定一个位置参数(install
、list
或 update
)。并且在install
场景中只能有其他参数。
argparse 文档有点密集,我很难弄清楚如何正确地执行此操作。我的 add_argument
应该是什么样的?
最佳答案
您似乎想使用 subparser
s .
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
这样您就可以知道调用了哪个子解析器。
关于Python的argparse从几个可选参数中选择一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16641502/