argparse可以有条件地解析参数吗?

用户名

argparse在python 2.7中使用解析命令行参数。是否有一些预定义的条件解析可以处理以下示例?

  • 如果-x1指定,则-x2 -x3必须指定,但是-x4是可选的。
  • 如果-x5指定了if ,则-x4必须指定,但它-x2是可选的。

有没有办法在以后不写条件的情况下做到这一点parser.parse_args()

hpaulj

出现了一个Python错误问题,该问题要求以argparse这种mutually exclusive groups方法为模型的“必需包含”组http://bugs.python.org/issue11588

提出的主要想法是在退出之前就应用像你这样的组合规则parse_args此时,已经列出了一组(或一组)参数。设计一个全面,逻辑和直观的用户界面的主要挑战。编写反映条件的用法行也是具有挑战性的。

但是,如果没有该修补程序,恐怕您将无法根据在args命名空间中找到的值编写自己的测试。如果您正确选择了默认值,这并不难。

另一种可能性是使用子解析器。您必须将-x1,,-x5位置选择x1更改x5,当然它们将是互斥的。

https://stackoverflow.com/a/27258765/901925一个简单的测试示例:

if args.option1 is None and args.option2 is None:
    parser.error('at least one of option1 and option2 is required')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以有条件地向我的knex查询添加where()子句吗?

我可以根据所在的存储库有条件地激活Git提示吗?

如何有条件地使python的argparse模块需要其他参数

我可以有条件地选择要分配给哪个变量吗?

可以有条件地计算dplyr :: summarize()的不同部分吗?

我可以有条件地编译“ Select Case”吗?

组件可以删除自己的模板并有条件地放回去吗?

有什么可以防止std :: optional :: value_or()有条件地例外的吗?

我可以有条件地使用passport-jwt吗?

如果未提供其值,有条件地忽略Terraform中的参数吗?

我可以有条件地提供特征函数的默认实现吗?

您可以有条件地运行部分if语句吗?

在Pentaho Data Integration中,我可以有条件地输出吗?

我可以有条件地更改列表吗?

我可以在ARM模板中有条件地使用复制功能吗?

环形防伪中间件可以有条件地应用吗?

我可以有条件地替换列表中的值吗?

我可以通过可移植的方式有条件地在Makefile中定义宏吗?

可以在useEffect中有条件地进行不同的清理吗?

我可以在AWS Appsync解析器中有条件地调用lambda函数吗?

我可以有条件地接管vscode扩展中的键绑定吗?

Sapper / Svelte可以有条件地导入组件吗?

是否可以使单个参数在步进函数中有条件地接收其值?

有什么方法可以有条件地忽略Spring的JUnit的测试吗?

您可以有条件地使 Hive 脚本失败吗?

您可以根据布尔值有条件地分配类型吗?

我们可以有条件地调用 pytest 夹具吗?

我可以有条件地定义一个 openMP 并行区域吗?

我可以有条件地关闭某些 oh-my-zsh 插件吗?