Python模块学习--OptionParser
简单介绍
OptionParser是python自带的解析unix命令行参数的模块,方便程序员解析命令行参数,并生成帮助和版本信息。
一个简单的例子
from optparse import OptionParser
usage = "usage: %prog [options] arg1 arg2 arg3"
version = "%prog 1.0"
parser = OptionParser(usage=usage, version=version)
parser.add_option("-z", "--zknum",
type="int",
dest="zknum",
help="Required:True Type:int Help:parastor zookeeper nums")
parser.add_option("-n", "--numbers",
type="int",
dest="num",
default=10000,
help="Required:False Type:int Help:fault execution nums, default: %default, range is 1-10000")
options, args = parser.parse_args()
print options.zknum
print options.num
add_option用来加入参数选项
通过parse_args解析命令行中的参数,获得各个参数的值
详细介绍add_option
add_option用来添加参数选项。
可以添加短参数,由’-'和单个字符组成;添加长参数,由"- -"和若干字符组成
add_option所有参数是:
‘action’ (string)
‘type’ (string)
‘dest’ (string)
‘default’ (any)
‘nargs’ (int)
‘const’ (any)
‘choices’ (tuple or list)
‘callback’ (function)
‘callback_args’ (the *args of function)
‘callback_kwargs’ (the *args of function)
‘help’ (string)
‘metavar’ (string)
1、action,参数处理方式
action的所有类型
store:配置时需要指定参数的值,这个值存入dest指定的变量中(参数多次配置取最后一次的值)。action不配置时,默认是store
store_const:配置时不需指定参数的值,配置后dest指定的变量为参数const设定的值,不配置为None
store_true:配置时不需指定参数的值,配置后dest指定的变量为True,不配置为None
store_false:配置时不需指定参数的值,配置后dest指定的变量为False,不配置为None
append:配置时需要指定参数的值,可以多次配置,配置的值放到一个列表中,dest指定的变量内容为这个列表
append_const:配置时不需指定参数的值,配置一次就把const的值放到一个列表中,dest指定的变量内容为这个列表
count:配置时不需指定参数的值,配置一次参数,dest指定的变量内容+1
callback:配置时不需指定参数的值,配置后,调用callback的函数
help:参数的帮助信息,-h和–help时打印
version:版本
正是因为action的多样,才使得OptionParser使用起来非常方便
2、type,数值类型
string:字符串
int:整数
long:长整数
float:浮点数
complex:虚数
choice:需要配置choices,配置的参数的值须在choices范围内
3、dest,指定存放参数值的变量
4、default,指定参数的默认值
5、nargs,指定参数后面值的个数,比如-v的nargs为3,部分命令行为-v 1 2 3 4,那-v的值为(1, 2, 3)
6、const,当action为store_const和append_const时,此参数才需要配置,参看action的store_const和append_const的解释
7、choices,当type为choice,此参数才需要配置,指定参数值的范围
8、callback,callback_args,callback_kwargs,callback为可执行的函数对象,当配置参数后,执行这个函数对象,callback_args和callback_kwargs为函数的参数
9、help,参数的帮助信息,-h和–help时显示的信息
10、metavar,帮助信息中显示参数含义的参数。
举例:
parser.add_option("-f", "--file", dest="file")
执行-h后,显示-f FILE, --file=FILE
parser.add_option("-f", "--file", dest="file", metavar='filename')
执行-h后,显示-f filename, --file=filename
介绍parse_args
parse_args是根据添加的参数解析命令行输入的参数
options, args = parser.parse_args()
options打印出来是字典形式(其实是定义过__str__的对象),键是添加参数的dest,值是输入的值或者默认值。args是除去add_option添加的参数之外的命令行输入的参数。
举例
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-o", "--operation",
action="store",
dest="operation")
fakeArgs = ['-o', '1', '3']
options, args = parser.parse_args(fakeArgs)
print options
print args
执行结果:
{‘operation’: ‘1’}
[‘3’]
之后想获取参数的值,比如-o的值,直接使用options.operation即可。