Argparse介绍
文档:https://docs.python.org/3.8/howto/argparse.html
主要功能就是可以从命令行读取参数,也可是直接使用下列的语句来查看相关参数的说明文档。
python text.py -h
或者
python text.py --help
Argparse的使用
有一个固定的套路就是
- 首先导入模块
- 创建一个解析对象
- 向该对象中添加你要用的命令行和选项
- 进行解析
import argparse
parser = argparse.ArgumentParser()
parser.add_argument()
args = parser.parse_args()
# 解析完就可以使用, 解析名.参数名 就是该参数
参数说明
我们来看一个具体的例子
import argparse
parser = argparse.ArgumentParser(description="calculate X to the power of Y")
group = parser.add_mutually_exclusive_group()
group.add_argument("-v", "--verbose", action="store_true")
group.add_argument("-q", "--quiet", action="store_true")
parser.add_argument("x", type=int, help="the base")
parser.add_argument("y", type=int, help="the exponent")
args = parser.parse_args()
answer = args.x**args.y
if args.quiet:
print(answer)
elif args.verbose:
print("{} to the power {} equals {}".format(args.x, args.y, answer))
else:
print("{}^{} == {}".format(args.x, args.y, answer))
这里就是遵循这套路的四个步骤。
在创建一个解析对象时,有一个参数叫description
,其作用就是是使用--help
或者 -h
时,显示出来。在parser.add_argument()
也有这样一个参数,就是help
。parser.add_argument()
中,
可选参数:就是可写,可不写的参数,短选项-v
和长选项--verboser
都是该参数的名称,action
内置6种动作可以在解析到一个参数时进行触发,默认为store
-
store
保存参数值,可能会先将参数值转换成另一个数据类型。若没有显式指定动作,则默认为该动作。 -
store_const
保存一个被定义为参数规格一部分的值,而不是一个来自参数解析而来的值。这通常用于实现非布尔值的命令行标记。 -
store_ture/store_false
保存相应的布尔值。这两个动作被用于实现布尔开关。 -
append
将值保存到一个列表中。若参数重复出现,则保存多个值。 -
append_const
将一个定义在参数规格中的值保存到一个列表中。 -
version
打印关于程序的版本信息,然后退出
固定参数:运行该文件必须要有的值,名字前面可以没有-
,其中包含参数required=True
,type
可以指定输入参数的类型,default
设置一个默认参数,choice
可以实现候选值的操作,如:choices=['test1.txt', 'text2.txt']
,
其输出为
$ python3 prog.py 4 2
4^2 == 16
$ python3 prog.py 4 2 -q
16
$ python3 prog.py 4 2 -v
4 to the power 2 equals 16
$ python3 prog.py 4 2 -vq
usage: prog.py [-h] [-v | -q] x y
prog.py: error: argument -q/--quiet: not allowed with argument -v/--verbose
$ python3 prog.py 4 2 -v --quiet
usage: prog.py [-h] [-v | -q] x y
prog.py: error: argument -q/--quiet: not allowed with argument -v/--verbose
$ python3 prog.py --help
usage: prog.py [-h] [-v | -q] x y
calculate X to the power of Y
positional arguments:
x the base
y the exponent
optional arguments:
-h, --help show this help message and exit
-v, --verbose
-q, --quiet
参考
python3中argparse模块详解
python argparse模块学习笔记