Python命令参数解析库argparse使用详解

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=, 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': '3', 

你可能感兴趣的:(计算机技术,#,Python,python,argparse,编程语言)