组之间使用argparse的Python依赖关系

组之间使用argparse的Python依赖关系,第1张

组之间使用argparse的Python依赖关系

您可以将公共的互斥组用作个子组的“根”:

import argparseparser = argparse.ArgumentParser(        description='this is the description',        epilog="This is the epilog",        argument_default=argparse.SUPPRESS          )parser.add_argument('-v', '--verbose', help='verbose', action='store_true', default=False)root_group = parser.add_mutually_exclusive_group()group_list = root_group.add_mutually_exclusive_group()group_list.add_argument('-m', help='list only modules', action='store_const', dest='list', const='modules', default='all')group_list.add_argument('-p', help='list only ports', action='store_const', dest='list', const='ports', default='all')group_list.add_argument('--list', help='list only module or ports', choices=['modules','ports'], metavar='<modules/ports>', default='all')group_simulate = root_group.add_mutually_exclusive_group()group_simulate.add_argument('-M', help='simulate module down', nargs=1, metavar='module_name', dest='simulate')group_simulate.add_argument('-P', help='simulate FC port down', nargs=1, metavar='fc_port_name', dest='simulate')group_simulate.add_argument('-I', help='simulate iSCSI port down', nargs=1, metavar='iSCSI_port_name', dest='simulate')group_simulate.add_argument('--simulate', help='simulate module or port down', nargs=1, dest='simulate')args = parser.parse_args()print args

结果:

$ python test.py -m -P asfafsusage: test.py [-h] [-v] [[-m | -p | --list <modules/ports>]     [-M module_name | -P fc_port_name | -I iSCSI_port_name | --simulate SIMULATE]test.py: error: argument -P: not allowed with argument -m $ python test.py -m -pusage: test.py [-h] [-v] [[-m | -p | --list <modules/ports>]     [-M module_name | -P fc_port_name | -I iSCSI_port_name | --simulate SIMULATE]test.py: error: argument -p: not allowed with argument -m


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5648073.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存