Python 基于互斥群参数的条件子parser

Python 基于互斥群参数的条件子parser,python,argparse,credstash,Python,Argparse,Credstash,我正在使用我的代码扩展credstash中的代码: 我的问题是,我想添加一个必需的参数,但前提是您选择-b作为互斥的参数之一(您必须提供bucket名称以及'credstash'名称),因此s3需要2个参数,而dynamodb-t参数只需要一个(仅表名) 现在,代码已经为您要采取的操作提供了子parser。我对python很陌生,对argparse也很陌生,所以对于如何有效地添加条件参数-c Credstash(但只有在使用-b时)的任何建议都是值得赞赏的 用法:credstash[-h][-

我正在使用我的代码扩展credstash中的代码:

我的问题是,我想添加一个必需的参数,但前提是您选择-b作为互斥的参数之一(您必须提供bucket名称以及'credstash'名称),因此s3需要2个参数,而dynamodb-t参数只需要一个(仅表名)

现在,代码已经为您要采取的操作提供了子parser。我对python很陌生,对argparse也很陌生,所以对于如何有效地添加条件参数-c Credstash(但只有在使用-b时)的任何建议都是值得赞赏的

用法:credstash[-h][-r区域][b BUCKET |-t TABLE][p PROFILE |-n ARN]

{delete,get,getall,list,put,setup}…

从我的评论中复制:

尝试为
-b
设置
nargs=2
。使用情况会是这样的

[-b BUCKET BUCKET | -t TABLE]
添加
metavar=('bucket','credstash')
(元组,而不是列表)应将用法更改为:

[-b bucket credstach | -t TABLE]

你的要求不是很清楚。但是我想知道为
-b
设置
nargs=2
是否有效。然后,使用情况看起来像
[-b BUCKET |-t TABLE]
(尽管您可以使用
metavar
对其进行优化)。这正是我想要的。我将尝试以这种方式实现它。谢谢@hpaulj