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

来源:互联网 发布:java可以清理cookie吗 编辑:程序博客网 时间:2024/05/20 11:50

本模块主要为了方便实现命令行参数处理,或者分析命令行参数。

创建命令行参数分析器:

#python 3.4

import 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()来使用这些参数的值,在这个例子里返回两个属性integersaccumulateintegers是一个包含所有整数的列表,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  深圳

0 0
原创粉丝点击