- 1 作用
- 2 使用方式
- 3 举例理解
- 3.1 官方详细教程
- 3.2 简单例子教程
argparse 是对终端输入的命令行的参数进行解析,俗称命令行解析器。说白了就是在终端输入带参数的命令,它就会自动解析这命令里面的参数,实现对应参数的功能。(命令行是终端输入的指令)
2 使用方式总体分为四个步骤
# 导入包
import argparse
# 初始化一个明细解析器对象
parser = argparse.ArgumentParser()
# 自定义一个参数和相应的功能
parser.add_argument()
# 执行解析
parser.parse_args()
其中ArgumentParser()在括号内是有参数的,在如下列了出来,但是在此以空括号举例理解使用。
prog - 程序的名称(默认:sys.argv[0]) usage - 描述程序用途的字符串(默认值:从添加到解析器的参数生成) description - 在参数帮助文档之前显示的文本(默认值:无) epilog - 在参数帮助文档之后显示的文本(默认值:无) parents - 一个 ArgumentParser 对象的列表,它们的参数也应包含在内 formatter_class - 用于自定义帮助文档输出格式的类 prefix_chars - 可选参数的前缀字符集合(默认值:’-’) fromfile_prefix_chars - 当需要从文件中读取其他参数时,用于标识文件名的前缀字符集合(默认值:None) argument_default - 参数的全局默认值(默认值: None) conflict_handler - 解决冲突选项的策略(通常是不必要的) add_help - 为解析器添加一个 -h/–help 选项(默认值: True) allow_abbrev - 如果缩写是无歧义的,则允许缩写长选项 (默认值:True) exit_on_error - 决定当错误发生时是否让 ArgumentParser 附带错误信息退出。 (默认值: True)
3 举例理解 3.1 官方详细教程官方文档详细介绍-Argparse 教程 argparse — 命令行选项、参数和子命令解析器
3.2 简单例子教程定义一个prog.py文件
# 导入包
import argparse
# 初始化一个解析器
parser = argparse.ArgumentParser()
# 定义一个变量是square,指定类型是int,help是描述信息没有实际作用。这行用于接收传入的int型参数,并赋值给square
parser.add_argument("square", type=int,
help="display a square of a given number")
# 定义一个参数是verbosity,-v表示在命令行中如果有-v这个参数,那命令行中-v后的那个数值参数就会赋值给verbosity
parser.add_argument("-v", "--verbosity", type=int,
help="increase output verbosity")
# 执行解析
args = parser.parse_args()
# 对变量square进行操作,求平方
answer = args.square**2
# 对传入的verbosity参数判断,如果等于2,执行以下代码
if args.verbosity == 2:
print("the square of {} equals {}".format(args.square, answer))
# 对传入的verbosity参数判断,如果等于1,执行以下代码
elif args.verbosity == 1:
print("{}^2 == {}".format(args.square, answer))
else:
print(answer)
以下是在终端执行 1、只传入一个参数4,那在代码里square = 4
python3 prog.py 4
输出:16 2、传入两个参数,4和-v,这时候报错,因为命令行再-v后面没有再附带数值参数
python3 prog.py 4 -v
输出:usage: prog.py [-h] [-v VERBOSITY] square prog.py: error: argument -v/–verbosity: expected one argument 3、传入三个参数,4 -v 2 表示square =4,-v表示指定给verbosity赋值为1
python3 prog.py 4 -v 1
输出:4^2 == 164、传入三个参数,4 -v 2 表示square =4,-v表示指定给verbosity赋值为2
python3 prog.py 4 -v 2
输出:the square of 4 equals 16
5、传入三个参数,4 -v 2 表示square =4,-v表示指定给verbosity赋值为3
python3 prog.py 4 -v 3
输出: 16