本文研究的主要是Python中optparser库的相关内容,具体如下。
一直以来对optparser不是特别的理解,今天就狠下心,静下心研究了一下这个库。当然了,不敢说理解的很到位,但是足以应付正常的使用了。废话不多说,开始今天的分享吧。
简介
optparse模块主要用来为脚本传递命令参数功能.
引入
在IDE中引入optparser是很方便的。
from optparser import OptionParser
初始化
相对而言,初始化需要我们多注意一点点了。
因为我们有两种不同的方式来初始化一个parser。
带有Usage选项:
这样的好处是可以模拟带有帮助的终端使用,如下
> from optparse import OptionParser > usage = "myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]" > parser=OptionParser(usage) #这里为类添加了参数usage
显示的时候就会使这样的了。
> parser.print_help() Usage: myprog[ -f <filename>][-s <xyz>] arg1[,arg2..] Options: -h, --help show this help message and exit #此两行根据option自动生成,比较智能额~~ -f FILENAME, --file=FILENAME no any help #自定义帮助信息
不带Usage选项:
正常来说可以不用设置参数。
parser = OptionParser()
添加选项
为命令行添加选项是我们这次最主要的工作了,也是核心。但是在添加选项之前,我们应该明白,为什么要添加选项?选项的工作原理是什么?这样我们才能更好的理解optparser的设计思想。
选项:类比于Unix的工作模式。举例 ls -a 或者 ls -all.
我们添加了一个名为all 的选项,为了简化操作,默认设置为a.
在OptionParser中要想实现这样的一个效果,我们只需要借助如下的一行代码。
# 这只是示意而已,没有什么意义 parser.add_option('-a' , '--all' )
核心
作为核心就是指add_option的其他的参数。有如下几个:
- action: 验证输入数据类型是否和type 匹配,并将符合要求的这个参数存储到dest变量中。有以下几个属性:
1.store 默认值
- store_false 标记而已 配合下边的那个store_true来进行代码的“标记”,辅助流程控制。
2.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") <Option at 0x2d72f48: -f/--file> > args = ["-f", "foo.txt"] #这个是模拟命令行的输入 > (options, args) = parser.parse_args(args) > options.filename 'foo.txt'
对于action属性可以看看接下来的这段代码。
> from optparse import OptionParser > parser=OptionParser() > parser.add_option("-v", action="store_true", dest="verbose") <Option at 0x2ceb888: -v> > parser.add_option("-q", action="store_false", dest="verbose") <Option at 0x2d68e48: -q> > fakeArgs = ['-v','hello'] > options, args = parser.parse_args(fakeArgs) > options.verbose True > fakeArgs = ['-q','bye bye'] > options, args = parser.parse_args(fakeArgs) > options.verbose False #如果同时写两个选项v和q,它会以哪个为准呢,答案是以最后出现的为准 > fakeArgs = ['-q','bye bye','-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") <Option at 0x2d77148: -x> > options, args = parser.parse_args() #这里没有传参数 > options.verbose 'defaultvalue'
完整的demo
from optparse import OptionParser usage = "myprog[ -f <filename>][-s <xyz>] 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="make lots of noise [default]") fakeArgs = ['-f','file.txt','-v','good luck to you', 'arg2', 'arge'] options, args = optParser.parse_args(fakeArgs) print options.fileName print options.verbose print options print args print optParser.print_help()
运行结果如下:
file.txt
False
{'verbose': False, 'fileName': 'file.txt'}
['this is some what', 'arg2', 'arge']
Usage: myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]
Options:
-h, --help show this help message and exit
-f FILENAME, --file=FILENAME
-v, --vison make lots of noise [default]
总结
以上就是本文关于Python中optparser库用法详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 2019明达发烧碟MasterSuperiorAudiophile[WAV+CUE]
- 蔡幸娟.1993-相爱容易相处难【飞碟】【WAV+CUE】
- 陆虎.2024-是否愿意成为我的全世界【Hikoon】【FLAC分轨】
- 关淑怡.2009-ERA【星娱乐】【WAV+CUE】
- 林忆莲《关于她的爱情故事》2022新世纪MQA 24K金碟限量版[WAV+CUE]
- 张雨生1993《一天到晚游泳的鱼》台湾G字首版[WAV+CUE][1G]
- 群星《试音五大女声》[WAV+CUE][1G]
- 魔兽世界wlk武器战一键输出宏是什么 wlk武器战一键输出宏介绍
- 魔兽世界wlk狂暴战一键输出宏是什么 wlk狂暴战一键输出宏介绍
- 魔兽世界wlk恶魔术士一键输出宏是什么 wlk恶魔术士一键输出宏介绍
- 医学爱好者狂喜:UP主把医学史做成了格斗游戏!
- PS5 Pro评分解禁!准备升级入手吗?
- 我们盘点了近期火热的国产单机游戏!《琉隐神渡》等 你期待哪款?
- 2019年第12届广州影音展双碟纪念版ADMS2CD[MP3/WAV]
- 黄安《救姻缘》台首版[WAV+CUE]