python argparse模块的简略使用说明
parser = argparse.ArgumentParser() #创建一个ArgumentParser对象,该对象保存了命令行解析为python对象后的所有信息
group = parser.add_mutually_exclusive_group(required=True) #创建一个互斥组(用来定义互斥参数,不用互斥参数可以不创建)
parser.add_argument(
dest= 'argument'| '-o','--options' # 作为parse_args()返回对象的属性名。可以不填dest,默认取第一位去除--或-的字符串
action='' #指定如何处理命令行参数,'store_true'|'append'|'count'等
type=int #指定命令行解析参数的类型,默认解析为字符串
default=10 #指定默认值
help='' #编写帮助文档(用于-h显示内容)
choices = [1,2,3] #执行参数值的枚举
require = True #参数必填
const = ''#获取不从命令行读取的值
)
group.add_argument('--foo', action='store_true')#添加一个互斥选项
group.add_argument('--bar', action='store_false')#添加一个互斥选项,选项--foo和--bar只能选择一个
subparsers = parser.add_subparsers(dest='subparser') # 子命令对象
parser_a = subparsers.add_parser('list', help='a help')#注册子命令,相当于 xxx list
parser_a.add_argument('-b','--bar', type=int, help='bar help') #注册子命令参数,相当于xxx list -b
args = parser.parse_args() #对象返回命令行中填写的参数值,
一个使用argparse的例子
_commands=[dict(action=cmd_list,command="list",flags=[
dict(args=['--json'],action='store_true',help='output format'),],
help="show connected iOS devices"),]
subparser = parser.add_subparsers(dest='subparser')
action = {}
for i in _commands:
action[i['command']]= i['action']
sp = subparsers.add_parser(i['action']) #注册子命令
for j in i.get('flags',[]):
sp.add_argument(....) #注册flags里面的子命令参数
args = parser.parse_args() # eg: Namespace(json=22, subparser='list')
action[args.subparser](args) #根据子命令subparser的返回值判断执行哪个方法 eg: action['list'](args)

浙公网安备 33010602011771号