Python中optparser库用法实例详解
本文研究的主要是Python中optparser库的相关内容,具体如下。
一直以来对optparser不是特别的理解,今天就狠下心,静下心研究了一下这个库。当然了,不敢说理解的很到位,但是足以应付正常的使用了。废话不多说,开始今天的分享吧。
简介
optparse模块主要用来为脚本传递命令参数功能.
引入
在IDE中引入optparser是很方便的。
fromoptparserimportOptionParser
初始化
相对而言,初始化需要我们多注意一点点了。
因为我们有两种不同的方式来初始化一个parser。
带有Usage选项:
这样的好处是可以模拟带有帮助的终端使用,如下
>>>fromoptparseimportOptionParser >>>usage="myprog[-f][-s ]arg1[,arg2..]" >>>parser=OptionParser(usage)#这里为类添加了参数usage
显示的时候就会使这样的了。
>>>parser.print_help() Usage:myprog[-f][-s ]arg1[,arg2..] Options: -h,--helpshowthishelpmessageandexit#此两行根据option自动生成,比较智能额~~ -fFILENAME,--file=FILENAME noanyhelp#自定义帮助信息
不带Usage选项:
正常来说可以不用设置参数。
parser=OptionParser()
添加选项
为命令行添加选项是我们这次最主要的工作了,也是核心。但是在添加选项之前,我们应该明白,为什么要添加选项?选项的工作原理是什么?这样我们才能更好的理解optparser的设计思想。
选项:类比于Unix的工作模式。举例ls-a或者ls-all.
我们添加了一个名为all的选项,为了简化操作,默认设置为a.
在OptionParser中要想实现这样的一个效果,我们只需要借助如下的一行代码。
#这只是示意而已,没有什么意义
parser.add_option('-a','--all')
核心
作为核心就是指add_option的其他的参数。有如下几个:
- action:验证输入数据类型是否和type匹配,并将符合要求的这个参数存储到dest变量中。有以下几个属性:
-store_false标记而已配合下边的那个store_true来进行代码的“标记”,辅助流程控制。
- type:指的是对应于参数,如-f,-n等的接下来的那个参数的数据类型,有string,int,float等等
- dest:用于保存临时变量,其值可以作为options的属性进行访问。存储的内容就是如-f,-n等紧挨着的那个参数内容。
- help:提供用户友好的帮助信息,一般可以用来解释本add_option方法的功能阐述。
单纯的讲起来很枯燥,下面看一个小例子就会明白了。
>>>parser.add_option("-f","--file",action="store",type="string",dest="filename")
>>>args=["-f","foo.txt"]#这个是模拟命令行的输入
>>>(options,args)=parser.parse_args(args)
>>>options.filename
'foo.txt'
对于action属性可以看看接下来的这段代码。
>>>fromoptparseimportOptionParser
>>>parser=OptionParser()
>>>parser.add_option("-v",action="store_true",dest="verbose")
>>>parser.add_option("-q",action="store_false",dest="verbose")
>>>fakeArgs=['-v','hello']
>>>options,args=parser.parse_args(fakeArgs)
>>>options.verbose
True
>>>fakeArgs=['-q','byebye']
>>>options,args=parser.parse_args(fakeArgs)
>>>options.verbose
False
#如果同时写两个选项v和q,它会以哪个为准呢,答案是以最后出现的为准
>>>fakeArgs=['-q','byebye','-v','hello']
>>>options,args=parser.parse_args(fakeArgs)
>>>options.verbose
True
非核心
这里主要是讲解一下关于default参数的作用,其实就是给dest的默认值。
如果我们没有指定dest的值的话,default的值就会作为dest的默认值来进行使用!
>>>parser.add_option("-x",action="store",dest="verbose",default="defaultvalue")
>>>options,args=parser.parse_args()#这里没有传参数
>>>options.verbose
'defaultvalue'
完整的demo
fromoptparseimportOptionParser usage="myprog[-f][-s ]arg1[,arg2..]" optParser=OptionParser(usage) optParser.add_option("-f","--file",action="store",type="string",dest="fileName") ooptParser.add_option("-v","--vison",action="store_false",dest="verbose",default='None', help="makelotsofnoise[default]") fakeArgs=['-f','file.txt','-v','goodlucktoyou','arg2','arge'] options,args=optParser.parse_args(fakeArgs) printoptions.fileName printoptions.verbose printoptions printargs printoptParser.print_help()
运行结果如下:
file.txt
False
{'verbose':False,'fileName':'file.txt'}
['thisissomewhat','arg2','arge']
Usage:myprog[-f][-s ]arg1[,arg2..]
Options:
-h,--helpshowthishelpmessageandexit
-fFILENAME,--file=FILENAME
-v,--visonmakelotsofnoise[default]
总结
以上就是本文关于Python中optparser库用法详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!