argparse模块
argparse是 Python 标准库中的一个模块(自 Python 2.7 和 3.2 起内置),用于解析命令行参数和选项。功能强大、使用广泛,是编写命令行工具的首选。
一、基本用途
argparse的主要作用是:
- 解析用户在命令行中传入的参数;
- 自动生成帮助信息(
--help); - 对输入参数进行类型检查、范围限制等;
- 支持位置参数(positional arguments)和可选参数(optional arguments)。
二、基本用法示例
importargparse# 创建解析器parser=argparse.ArgumentParser(description='计算两个数的和')# 添加位置参数parser.add_argument('a',type=int,help='第一个整数')parser.add_argument('b',type=int,help='第二个整数')# 添加可选参数parser.add_argument('-v','--verbose',action='store_true',help='是否显示详细信息')# 解析参数args=parser.parse_args()# 使用参数result=args.a+args.bifargs.verbose:print(f'{args.a}+{args.b}={result}')else:print(result)运行示例:
$ python script.py358$ python script.py35-v3+5=8$ python script.py --help usage: script.py[-h][-v]a b 计算两个数的和 positional arguments: a 第一个整数 b 第二个整数 options: -h, --help show thishelpmessage andexit-v, --verbose 是否显示详细信息三、常用参数说明
| 参数 | 说明 |
|---|---|
name or flags | 如'name'(位置参数)或'-f', '--file'(可选参数) |
type | 指定参数类型,如int,float,str,或自定义函数 |
default | 默认值 |
help | 帮助信息 |
action | 参数行为,如'store_true'(无参开关)、'append'(多次出现收集为列表)等 |
choices | 限定可选值,如choices=['red', 'blue'] |
nargs | 指定参数数量,如'*'(0或多个)、'+'(1或多个)、'?'(0或1个) |
required | 对可选参数设为True表示必须提供(仅用于可选参数) |
四、高级功能示例
1. 子命令(subcommands)
适用于类似git commit、git push这样的多命令工具:
parser=argparse.ArgumentParser()subparsers=parser.add_subparsers(dest='command')# 子命令:addadd_parser=subparsers.add_parser('add',help='加法')add_parser.add_argument('x',type=int)add_parser.add_parser('y',type=int)# 子命令:mulmul_parser=subparsers.add_parser('mul',help='乘法')mul_parser.add_argument('x',type=int)mul_parser.add_argument('y',type=int)args=parser.parse_args()ifargs.command=='add':print(args.x+args.y)elifargs.command=='mul':print(args.x*args.y)2. 互斥参数组
确保某些参数不能同时出现:
group=parser.add_mutually_exclusive_group()group.add_argument('--quiet',action='store_true')group.add_argument('--verbose',action='store_true')未完待续…