agrparse是python官方库汇中的一个命令行解析工具,主要作用是接收命令行中的参数,同时还有给出代码的usage功能。
就像在命令行终端中输入:
>> python main.py --help
它会给出代码参数的说明。
>> python main.py --num 10 --name Tom
这是给代码传入num和name参数。
1、基本用法
首先直接导入包、接受参数,其他什么也不做。
代码:
1 | import argparse |
运行结果:
结果分析:
可以看出-h和–help能显示出代码的usage,但是上面代码中没有加任何usage,所以不会显示。
2、添加位置参数(positional arguments)
给代码传入参数。
1 | import argparse |
运行结果:
结果分析:
代码第三行,利用add_argument接受一个参数,并把参数赋值给num变量。
从运行结果中可以看出接收到的参数都保存为str类型。
程序加上-h获取usage时可以看出代码的用法usage: learn.py [-h] num
,表示可以接受一个num参数。
num参数默认必选,如果不加参数会报错。
3、添加可选参数(optional arguments)
有两种方式添加,-
指定短参数,如-h
;--
指定长参数,如--help
。
这两种方式可以同时存在,也可以只存在一个。
首先给出一个接收指定名字参数的例子:
1 | import argparse |
运行结果:
结果分析:
第三行代码表示通过-n
或--number
来添加一个参数,这个参数保存在number
变量中,后面的帮助信息利用-h
或传参错误是或显示给使用者。
-n
和--number
指定的是同一个参数,这个参数保存在args.number
中,而不是args.n
中。
4、指定参数的数据类型
默认的参数类型为str,如果需要进行数据运算还需要再进行转换。argparser提供了对参数数据类型的限制和解析,如果输入的参数不类型不符合,则直接报错。
如下面是计算输入参数的平方的例子:
1 | import argparse |
运行结果:
5、参数默认值
可以通过default来指定参数的默认值,当没有输入参数的时候,参数值就为default指定的值。
1 | import argparse |
运行结果:
6、限定参数的输入范围
可以利用choices=[]
来指定输入参数可选值。
1 | import argparse |
运行结果:
当输入的参数不在choice指定的数中时会报错。
7、添加程序使用说明
可以通过argparse.ArgumentParser(description="calculate X to the power of Y")
来给整个程序定义说明文档。
同时可以通过parser.add_argument()中help参数来给每个变量添加说明。
1 | import argparse |
运行结果: