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

https://github.com/willcrain1/credstash

我的问题是,我想添加一个必需的参数,但是仅当您选择-b作为互斥之一时(您将必须提供存储桶名称以及'credstash'名称),因此s3需要2个参数,其中dynamodb--t参数只需要一个(只是表名)。

现在,该代码已经为您要采取的措施提供了次级解析器。我是python的新手,所以是argparse的新手,因此对如何添加条件参数-c Credstash(但仅当使用-b时)的有效方式的任何建议都值得赞赏。

usage: credstash [-h] [-r REGION] [-b BUCKET | -t TABLE] [-p PROFILE | -n ARN] {delete,get,getall,list,put,setup} ...

最佳答案

从我的评论中复制:

尝试将nargs=2设置为-b。用法看起来像

[-b BUCKET BUCKET | -t TABLE]


添加metavar=('bucket', 'credstash')(元组,而不是列表)应将用法更改为:

[-b bucket credstach | -t TABLE]

关于python - 互斥组参数的条件子解析器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42846369/

10-09 18:56