如何做一个Python argparse相互需要的参数组

时间:2016-08-12 03:27:22

标签: python command-line-interface argparse

我想编写一个带有可选--foo--bar参数的脚本。指定它们都是合法的。指定两者也是合法的。但是,仅指定--foo或仅--bar会引发命令行解析器错误。

在我调用parser.parse_args()之后,我可以编写代码来检查这种情况并引发相应的错误,但是有没有一种方法已经内置到argparse来执行此操作,这与{{3}相反}}?

1 个答案:

答案 0 :(得分:2)

没有那种分组或内置测试,只有这一次xor测试。

但解析后实现测试并不困难 - 只要你的参数有合理的默认值(例如默认的默认值None)。

另一种可能性是使用foobar定义一个参数nargs=2 - 它需要2个值。

另一个是提供一个或两个良好的默认值,这样你就不会真正关心用户是否同时提供这两个值。