Python的argparse从几个可选参数中选择一个

标签 python command-line-arguments argparse

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

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

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

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

最佳答案

您似乎想使用 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这样您就可以知道调用了哪个子解析器。

关于Python的argparse从几个可选参数中选择一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16641502/

相关文章:

shell - 将参数列表传递给 shell 中的命令

Bash:多个命令行替换

python - 不要 argparse 从命令行读取 unicode?

Python:使用argparse显示输入参数的顺序

python - 当两列中有重复的单元格时,如何更改一列中单元格的值

python - 需要一个解决方案 urllib2

command-line-arguments - GNAT.Command_Line 中的选项参数存在问题

python - 当您单击红色小按钮时,Eclipse PyDev 不会关闭解释器

python - 性能缓慢 - Python(代码)

python - 多项选择命令行参数