python argparse-强制子命令

时间:2018-06-25 09:14:23

标签: python argparse

我在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()

1 个答案:

答案 0 :(得分:2)

只需在ctrl + F5中添加required=True

group.add_argument()

在链接的文档中,第15.4.3段对此进行了说明。 add_argument()方法here

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

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