如何解决Python argparse:如果存在某些特定标志,则强制使用一组标志
对于一个副项目,我必须遵循以下规范:
script.py -T <token> [ -X (-C <carId> | -M <motorcycleId>) | -Y (-C <carId> | -M <motorcycleId>) | -Z (-C <carId> | -M <motorcycleId>) ] <file>
首先,我的脚本必须始终提供 token
和 file
路径。
其次,脚本可能一次采用一个标志 -X
、-Y
或 -Z
。如果使用了这些标志中的任何一个,用户还必须提供标志 -C <carId>
或 -M <motorcycleId>
。
我有一个部分实现此规范的工作脚本,但我无法想出第二部分的逻辑。
parser = argparse.ArgumentParser()
required = parser.add_argument_group('required arguments')
required.add_argument('-T',Metavar='<token>',required=True)
exclusive_commands = parser.add_mutually_exclusive_group()
exclusive_commands.add_argument('-X',action='store_true')
exclusive_commands.add_argument('-Y',action='store_true')
exclusive_commands.add_argument('-Z',action='store_true')
parser.add_argument('file',Metavar='<file>')
当用户使用 -C <carId> | -M <motorcycleId>
、-X
、-Y
标志中的任何一个时,我如何强制使用标志 -Z
?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。