文档:https://docs.python.org/3.8/howto/argparse.html
主要功能就是可以从命令行读取参数,也可是直接使用下列的语句来查看相关参数的说明文档。
python text.py -h
或者
python text.py --help
有一个固定的套路就是
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模块学习笔记