argparse 学习记录
一、什么是 argparse?
argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。
它可以快速的处理错误的参数提供(默认输出 help 信息),也可以快速的提供用户定义的帮助信息。
二、简单使用
- 创建 ArgumentParser() 对象
- 调用 add_argument() 方法添加参数
- 使用 parse_args() 解析添加的参数
# -*- coding: utf-8 -*-
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('integer', type=int, help='display an integer')
args = parser.parse_args()
print args.integer
三、定位参数
定位参数就是必然需要一个参数,并且根据 add_argument 语句的位置而确定,即如果定义了两个定位参数,则命令行必须提供两个参数,并且根据顺序赋值。
# 定位参数名不带‘-’或‘--’,
# type 即定位给的参数的类型,
# help 即可在命令行 -h 自动调用
parser.add_argument('integer', type=int, help='display an integer')
调用方式:
python test.py 3
四、可选参数
中文名叫可选参数,有两种方式:
- 一种是通过一个-来指定的短参数,如 -h;
- 一种是通过–来指定的长参数,如 –help;
# 定位参数名带‘-’或‘--’,(可以只带一个,也可以两个都带)
# type 即跟在可选参数之后数据的类型,
# help 即可在命令行 -h 自动调用
parser.add_argument('-i', type=int, help='display an integer')
parser.add_argument('--integer', type=int, help='display an integer')
parser.add_argument('-i', '--integer', type=int, help='display an integer')
调用方式:
python test.py -i 12
python test.py --integer 12
五、特殊用法
1、可选参数默认需要跟一个数据项,但也可以不跟
(例如 Linux 指令:ls -al)
# 去掉 type 参数,将 action 参数改为 “store_true”
# 这样命令行如果出现了 --test 则会返回 True,否则返回 False
parse.add_argument('--test', help='功能测试模式', action="store_true")
2、定位参数和可选参数的数据项,只可从特定选项中选取
需要用到关键字 choices。
parser = argparse.ArgumentParser()
parser.add_argument('-r', type=str, help='重启方式', choices=['reboot', 'power_reset'])
args = parser.parse_args()
# 调用过程
>$python reboot.py -r reboot
>$python reboot.py -r power_reset
六、更多
更多参数使用可参照
- https://www.jianshu.com/p/fef2d215b91d
- http://blog.xiayf.cn/2013/03/30/argparse/