python argparse - 强制子命令

python argparse - mandatory sub-command

我在互斥组中有 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()

只需在 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)