您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python argparse:带有可选和位置参数的互斥参数

Python argparse:带有可选和位置参数的互斥参数

最好的选择是在解析后测试值,如果需要,请提供自己的custom usage

一个common_exclusive_group可以使用一个可选的位置,例如

group = parser.add_mutually_exclusive_group()
group.add_argument('-y','--yesterday', action='store_true')
group.add_argument('dates',nargs='?')

我以为它可以使用nargs='*',但ValueError: mutually exclusive arguments must be optional出现错误

因此,一个可选的位置值有效,但是无法将此测试与2个可选的位置值一起使用。

parser.add_argument('--yesterday',action='store_true')
parser.add_argument('start',nargs='?')
parser.add_argument('end',nargs='?')

然后测试args.yesterdayargs.start is Noneargs.end is None。如果这些组合的某些组合是错误的,请提出parser.error('....')

只要您可以区分认值和用户给定的值,解析后的测试与您可能强制解析器执行的任何操作一样好。

考虑一下什么使用消息对您的用户来说也是一个好主意。例如

例如:

PROG  [--yesterday | [start [end]]]

不是argparse可以自动生成的东西。

python 2022/1/1 18:37:13 有263人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶