使用argparse相对于使用argparse组之间的Python依赖性,我有一个分析器的一些解析器组的参数部分-例如:
group_simulate.add_argument('-P',
help='simulate FC port down',
nargs=1,
metavar='fc_port_name',
dest='simulate')
Run Code Online (Sandbox Code Playgroud)
1:m:"number between 1 and 10":p:"number between 1 and 4"
Run Code Online (Sandbox Code Playgroud)
我试图使用范围选项,但我找不到一种方法来创建一个可接受的选项列表
示例:法律参数:
test.py -P 1:m:4:p:2
Run Code Online (Sandbox Code Playgroud)
不合法的参数:
test.py -P 1:p:2
test.py -P abvds
Run Code Online (Sandbox Code Playgroud)
非常感谢你的帮助!
我开始学习Python,现在我正在学习它的巨大好处argparse.使用argparse,我创建了两组参数:group_list和group_simulate.每个组都有自己的参数 - 用户只能在每个组中指定一个参数(使用实现parser.add_mutually_exclusive_group()).
现在我的目标是一个语法错误,如果用户从两个groupgs而不是只从其中一个指定参数 - 我想通过使用的功能来实现这一点,argparse而不是通过编写一个方法来询问是否指定了这个和打印语法错误.
import argparse
parser = 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)
group_list = parser.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 = parser.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 …Run Code Online (Sandbox Code Playgroud)