8、argparse

argsparse是python的命令行解析的标准模块,内置于python(2.7之后),不需要安装。这个库可以让我们直接在命令行中就可以向程序中传入参数并让程序运行。

其核心是通过add_argument方法自定义入参的:标志、格式、类型和范围等特性

add_argument

函数原型

ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

ArgumentParser

参数解析器,类原型

class argparse.ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True, exit_on_error=True)

使用

import argparse

#创建解析器
parser = argparse.ArgumentParser(description='学生信息记录')

#添加参数
#指定位置参数,是必填的
parser.add_argument('id')
#指定-n/--name参数,是必填的
parser.add_argument('-n','--name',help='姓名',required=True)
#指定-a/--age参数,可选值为10-18
parser.add_argument('-a','--age',type=int,choices=range(10,19),help='年龄')
#指定-s/-sex参数,可选值:男、女
parser.add_argument('-s','--sex',choices={'男','女'},help='性别')

#解析参数,返回一个类似字典的对象
args = parser.parse_args()
print(args)

print('学号:%s,姓名:%s,年龄:%s,性别:%s' % (args.id,args.name,args.age,args.sex))

查看帮助信息

python .\test.py -h

-------->>

usage: test.py [-h] -n NAME [-a {10,11,12,13,14,15,16,17,18}] [-s {男,女}] id
学生信息记录
positional arguments:
  id
optional arguments:
  -h, --help  show this help message and exit
  -n NAME, --name NAME  姓名
  -a {10,11,12,13,14,15,16,17,18}, --age {10,11,12,13,14,15,16,17,18} 年龄
  -s {男,女}, --sex {男,女}  性别

传参测试

python .\test.py 199766 -n lucy -a 18 -s 女

-------->>

Namespace(age=18, id='199766', name='lucy', sex='女')
学号:199766,姓名:lucy,年龄:18,性别:女