【问题标题】:python argparse - mandatory sub-commandpython argparse - 强制子命令
【发布时间】:2018-12-03 19:43:03
【问题描述】:

我在互斥组中有 3 个参数。我想为“-a”参数提供一个新的强制子命令,并且该参数应该只可用于“-a”参数。

最好的方法是什么?我已经尝试搜索和阅读这个argparse docs 但还没有弄清楚。

parser = argparse.ArgumentParser(prog='med-tool test', description='med-tool')
group = parser.add_mutually_exclusive_group(required=True)

parser.add_argument('-f', '--foo')
group.add_argument('-a', '--add', help ="Add device", metavar='')
group.add_argument('-d', '--get', help ="Get device", metavar='')
group.add_argument('-r', '--get', help ="Read device", metavar='')

args = parser.parse_args()

【问题讨论】:

标签: python argparse


【解决方案1】:

只需在group.add_argument() 中添加required=True

group.add_argument('-a', '--add', help ="Add device", metavar='', required=True)

在您链接的文档中进行了描述,第 15.4.3 段。 add_argument() 方法here

我不确定这是否真的是您想要的,因为在互斥组中添加必需的参数是没有意义的。 您可能想将其修改为:

parser.add_argument('-a', '--add', help ="Add device", metavar='', required=True)

【讨论】:

  • 我想让一个新的子命令(参数)可用于“-a”参数。所以我想它应该在 MEG 之外?像等:script.py - 一个测试 - 新房子
  • 是的,放在 MEG 外面。
  • 嗯,这很简单;)谢谢我现在可以工作了。
猜你喜欢
  • 2012-01-29
  • 2016-09-18
  • 2018-12-30
  • 2014-10-08
  • 2018-01-25
  • 2017-01-31
  • 2011-07-07
  • 2020-09-06
  • 2011-09-15
相关资源
最近更新 更多