您的位置:首页 > 其它

13.4 argparse--分析命令行选项、参数功能

2016-06-28 08:15 513 查看
本模块主要为了方便实现命令行参数处理,或者分析命令行参数。创建命令行参数分析器:#python 3.4import argparse parser = argparse.ArgumentParser(description='Process some integers.')print(parser)结果输出如下:ArgumentParser(prog='arg2.py', usage=None, description='Process some integers.', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True)在这里,设置参数description为描述这个命令行处理对象主要做什么事情。 添加参数到分析器:parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator')parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)')在想往命令行ArgumentParser对象里添加参数,需要使用函数add_argument(),这个函数会把这些参数怎么设置,怎么样运行的方式设置到对象里。后面通过调用函数parse_args()来使用这些参数的值,在这个例子里返回两个属性integers和accumulate,integers是一个包含所有整数的列表,accumulate属性将会是sum()的函数功能,如果输入参数--sum,默认是max()的功能。最后会调用分析函数parse_args(),如下:parser.parse_args(['--sum', '7', '-1', '42'])在函数parse_args()一般不输入参数,它自动地使用sys.argv参数,实现从脚本里获取命令行的参数。 class argparse.ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=, []formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True)创建一个ArgumentParser分析对象。参数prog是程序的名称,默认是sys.argv[0]。参数usage是描述本程程序的使用方法字符串。参数description是在参数使用前面显示的字符串。参数epilog是在参数使用后面显示的字符串。参数parents是那些参数被包括的ArgumentParser列表。参数formatter_class是定制的输出帮助类。参数prefix_chars是参数前面定义的字符,默认是“-”。参数fromfile_prefix_chars是定义命令行参数在文件里的前缀字符。默认是空。参数argument_default是所有参数的缺省值。参数conflict_handler是 解决冲突的处理策略。参数add_help是添加 -h/-help选项给分析器,默认是True。 ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest]) 定义一个命令行参数。参数name or flags是一个名称还是一个选项列表。参数action是当遇到这个参数时怎么样处理。参数nargs是指这个命令要消耗多少个命令行参数。参数const是有常量的需求,但不需要读取的。参数default是当命令在命令行里不存在时默认的值。参数type是命令行参数转换为那一种Python类型。参数choices是这个命令参数允许的值的容器。参数required是命令参数是否可选。参数help是描述这个参数是做什么事情的。参数metavar是在使用说明里参数的名称。参数dest是参数在分析之后产生的对象里的属性名称。 ArgumentParser.parse_args(args=None, namespace=None) 转换参数字符串为命令行对象,并把相关参数转换为属性。参数args是直接给出命令行参数,默认是使用系统的sys.argv参数;参数namespace是命名对象的名称。

蔡军生 QQ:9073204 深圳
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: