1. argparse 模块
argparse是一个Python模块:命令行选项、参数和子命令解析器
- argparse 模块可以让人轻松编写用户友好的命令行接口。程序定义它需要的参数
- 其次,argparse 将弄清如何从 sys.argv 解析出那些参数。
- argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。
2. 使用流程
1. 创建解析器
parser = argparse.ArgumentParser(description='Process some integers.')
使用 argparse 的第一步是创建一个 ArgumentParser 对象。
ArgumentParser 对象包含将命令行解析成 Python 数据类型所需的全部信息
description - 在参数帮助文档之前显示的文本(默认值:无)
2.添加参数
parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator')
add_argument() 方法
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type]
[, choices][, required][, help][, metavar][, dest])
每个参数解释如下:
name or flags - 一个名字或者一个选项字符串的列表,例如 foo 或 -f, --foo。
action - 当参数在命令行中出现时,使用的动作(action)基本类型。表示该选项要执行的操作。
nargs - 命令行应当使用的参数数目。
const - 一些 action 和 nargs 选项所需的常数值。
default - 当参数未在命令行中出现时使用的值。
type - 命令行参数应当被转换成的类型。为参数类型,例如int。
choices - 用来选择输入参数的范围。例如choice = [1, 5, 10], 表示输入参数只能为1,5 或10
required - 此命令行选项是否可省略 (仅选项可用)。
help - 用来描述这个参数选项的作用。
metavar - 在使用方法消息中使用的参数值示例。(A name for the argument in usage messages.)
dest - 被添加到 parse_args() 所返回对象上的属性名。用来指定参数的位置
3.解析参数
ArgumentParser通过parse_args()方法解析参数
args = parser.parse_args()
4.示例
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))
# 命令行参数使用,下面两种用法是等价的
python path.py 221 22 --sum
python path.py --sum 1 1 2
# 输出
4