我argparse在 Python 2.7 中使用来解析命令行参数。是否有一些预定义的条件解析可以处理以下示例?
-x1指定,则-x2 -x3必须指定,但-x4可选。-x5指定则-x4必须指定,但是-x2可选的。有没有办法在之后不写条件的情况下做到这一点parser.parse_args()?
有一个 Python 错误问题要求“必须具有包容性”的群体以argparse该mutually exclusive groups方法为模型。 http://bugs.python.org/issue11588
提出的主要想法是在退出之前应用像您这样的组合规则parse_args。此时,已经看到了一个(或一组)参数列表。主要挑战是设计一个全面、逻辑和直观的用户界面。编写反映条件的使用行也具有挑战性。
但如果没有该补丁,恐怕您将不得不根据在 args 命名空间中找到的值编写自己的测试。如果您正确选择默认值,这应该不难。
另一种可能性是使用子解析器。你必须将-x1、更改-x5为位置选择,x1并且x5,当然它们是相互排斥的。
/sf/answers/1908113581/ 一个简单的测试示例:
if args.option1 is None and args.option2 is None:
parser.error('at least one of option1 and option2 is required')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2724 次 |
| 最近记录: |