Python标准库中自带了一个argparse模块,这个模块用来解析命令行参数。
当然,python还自带了另外两个库用来实现同样的功能:getopt、optparse。
基本用法
一个最简单的例子如下:
1 2 3 4
| import argparse parser = argparse.ArgumentParser() parser.parse_args()
|
执行这段代码,结果如下:
1 2 3 4 5 6 7 8 9 10 11 12
| $ python3 prog.py $ python3 prog.py --help usage: prog.py [-h]
optional arguments: -h, --help show this help message and exit $ python3 prog.py --verbose usage: prog.py [-h] prog.py: error: unrecognized arguments: --verbose $ python3 prog.py foo usage: prog.py [-h] prog.py: error: unrecognized arguments: foo
|
添加参数
参数有两种,位置参数和选项参数,区别在于位置参数前没有符号-
,而选项参数前有符号-
。
这两种参数的添加都使用add_argument方法:
1 2 3 4 5 6 7 8
| import argparse parser = argparse.ArgumentParser() parser.add_argument("echo", help="echo the string you use here") parser.add_argument("-v", "--verbosity", help="increase output verbosity") args = parser.parse_args() print(args) print(args.echo, args.verbosity)
|
执行结果如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| $ python prog.py --help usage: prog.py [-h] [-v VERBOSITY] echo
positional arguments: echo echo the string you use here
optional arguments: -h, --help show this help message and exit -v VERBOSITY, --verbosity VERBOSITY increase output verbosity $ python prog.py echo_value Namespace(echo='echo_value', verbosity=None) echo_value None $ python prog.py -v verbosity_value echo_value Namespace(echo='echo_value', verbosity=verbosity_value) echo_value verbosity_value
|
add_argument函数
更详细的用法参见:add_argument。