argparse库是Python自带的一个命令行参数解析库。它可以处理选项参数(optional argument)和位置参数(positional argument),并能根据参数信息自动生成使用帮助信息。其功能跟C语言的的getopt和getopt_long函数很像,但比后者更强大简便一些。
基本使用
创建解析器
解析器对象的类型为ArgumentParser类,调用其构造方法可创建。启动python3的交互式界面,输入如下代码。
import argparse
parser = argparse.ArgumentParser(
description='example argument parser')
print(parser)
ArgumentParser(prog='', usage=None, description='example argument parser', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True)
添加参数信息
创建好解析器对象后,调用该对象的add_argument方法来添加参数。可以添加选项参数和位置参数。所谓选项参数就是以'-'开头的选项开关,包括长选项'--'和短选项;而位置参数,则不以'-'开头。举个例子,常用的find命令的格式如下:
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
其中-H, -L等就称为选项参数;而后面的path和expression则称为位置参数。
添加长选项参数:
parser.add_argument(
'--option-a')
添加短选项参数:
parser.add_argument(
'-b')
也可以把长选项和短选项参数关联:
parser.add_argument(
'-c', '--option-c')
解析参数
添加完参数信息后,就可以调用解析器对象的parse_args方法来解析命令行参数了。一般情况下,命令行参数存于sys.argv数组中。这里直接构造一个列表模拟命令行。
args = parser.parse_args(['--option-a', '1', '-b', '2', '-c', '3', 'testfile'])
print(args)
print(vars(args))
print('option-a: ', args.option_a)
print('filename: ', args.filename)
Namespace(b='2', filename='testfile', option_a='1', option_c='3')
{'option_a': '1', 'b': '2', 'option_c': '