python hank_python optparse模块
optparse是专门用来在命令行添加选项的一个模块。
首先来看一段示例代码
from optparse import OptionParser
MSG_USAGE = "myprog[ -f ][-s ] arg1[,arg2..]"
optParser = OptionParser(MSG_USAGE)
optParser.add_option("-f","--file",action = "store",type="string",dest = "fileName")
ooptParser.add_option("-v","--vison", action="store_false", dest="verbose",default='gggggg',
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 ][-s ] arg1[,arg2..]
Options:
-h, --help show this help message and exit
-f FILENAME, --file=FILENAME
-v, --vison make lots of noise [default]
基本使用步骤
1、 产生一个OptionParser的物件optParse。传入的值MSG_USAGE可被调用打印命令时显示出来。
MSG_USAGE = "myprog[ -f ][-s ] arg1[,arg2..]"
optParser = OptionParser(MSG_USAGE)
2、调用OptionParser.add_option()添加选项
optParser.add_option("-f","--file",action = "store",type = "string",dest = "fileName")
optParser.add_option("-v","--vison", action="store_false", dest="verbose",default='gggggg',
help="make lots of noise [default]")
add_option()参数说明:
action:存储方式,分为三种store、store_false、store_true
type:类型(我也不知道什么的类型)
dest:存储的变量
default:默认值
help:帮助信息
3、调用OptionParser.parse_args()剖析并返回一个directory和一个list。
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
输出结果
file.txt
False
{'verbose': False, 'fileName': 'file.txt'}
['this is some what', 'arg2', 'arge']
parse_args()说明:
如果没有传入参加,parse_args会默认将sys.argv[1:]的值作为默认参数。这里我们将fakeArgs模拟输入的值。
从返回结果中可以看到,
loptions为是一个directory,它的内容fakeArgs为“参数/值 ”的键值对。
largs 是一个list,它的内容是fakeargs除去options后,剩余的输入内容。
loptions.version和options.fileName都取到与options中的directory的值。
4、调用OptionParser.optParser.print_help()输出帮助信息
optParser.print_help()
显示返回结果
Usage: myprog[ -f ][-s ] arg1[,arg2..]
Options:
-h, --help show this help message and exit
-f FILENAME, --file=FILENAME
-v, --vison make lots of noise [default]
optParser.print_help()说明:
1、最开始的的MSG_USAGE的值:在这个地方显示出来了。
2、自动添加了-h这个参数。
注:在MSG_USAGE中如果使用%prog,会被自动解析为sys.args[0] 也就是文件名。如将,MSG_USAGE = "%prog [options] arg1 arg2",假如文件名为filexx,那么出现在help中的
信息就是"filexx[options] arg1 arg2"。
深入分析
OptionParser.add_option()
例:optParser.add_option("-v","--vison", action="store_false", dest="verbose",default='gggggg',
help="make lots of noise [default]")
参数action:
存储方式,分为三种store、store_false、store_true。
下面分别对三种方式进行说明:
第一种:action = "store"
1、如果输入的参数fakeArgs中存在"-v",则verbose返回的值为fakeArgs中的紧跟'-v'的数,即"good luck to you"。这也正好options中的键值对应,剩下配对的参数都传给了args。请见以下代码
optParser.add_option("-f","--file",action = "store",type = "string",dest = "fileName")
optParser.add_option("-v","--vison", action="store", dest="verbose")
fakeArgs = ['-f','file.txt','-v','good luck to you', 'arg2', 'arge']
options, args = optParser.parse_args(fakeArgs)
print optParse.verbose
print options
print args
输入结果
good luck to you
{'verbose': 'good luck to you', 'fileName': 'file.txt'}
['arg2', 'arge']
2、如果输入的参数fakeArgs中不存在"-v",则verbose的返回值为None。
示例代码:
optParser.add_option("-f","--file",action = "store",type = "string",dest = "fileName")
optParser.add_option("-v","--vison", action="store", dest="verbose")
fakeArgs = ['-f','file.txt','good luck to you', 'arg2', 'arge']
options, args = optParser.parse_args(fakeArgs)
print optParse.verbose
print options
print args
输出结果
None
{'verbose': None, 'fileName': 'file.txt'}
['good luck to you', 'arg2', 'arge']
第二种:action = "store_true"
1、fakeArgs中存在'-v',verbose将会返回True而不是"good luck to you"。意思就是说verbose的值与'-v'
的后一位无关,只与'-v'存不存在就关。
示例代码
optParser.add_option("-f","--file",action = "store",type = "string",dest = "fileName")
optParser.add_option("-v","--vison", action="store_true", dest="verbose")
fakeArgs = ['-f','file.txt','-v','good luck to you', 'arg2', 'arge']
options, args = optParser.parse_args(fakeArgs)
print optParse.verbose
print options
print args
输出结果
True
{'verbose': True, 'fileName': 'file.txt'}
['good luck to you', 'arg2', 'arge']
2、fakeArgs中不存在'-v',verbose同样返回空(我就不运行代码了)。
第三种:action="store_false"
这与action="store_true"类似,只有其中有参数'-v'存在,则verbose的值为False,如果'-v'不存在,那么verbose的值为None。
参数:default
optParser.add_option("-v","--vison", action="store_false", dest="verbose",default='gggggg')
设置些参数是用于返回verbose的返回值。
如果action="store",default='gggggg',代码如下。
optParser.add_option("-v","--vison", action="store_false", dest="verbose",default='gggggg')
fakeArgs = ['-f','file.txt','-v','good luck to you', 'arg2', 'arge']
如果fakeArgs中存在'-v',则返回值为,"good luck to you"
如果不存在'-v'则返回值为,"gggggg"
如果action ="store_true",default='gggggg',代码如下。
optParser.add_option("-v","--vison", action="store_true", dest="verbose",default='gggggg')
如果fakeArgs中存在'-v',则返回值为True。
如果fakeArgs中不存在'-v',则返回值为None
再一次说明了,如果action="store_true"时,verbose的值只与是否'-v'有关。是否也说明了action_true的优先级高于default。
注:action="store_false"的功能与此类似,返回为False或者None。再一次证明了
参数:help
optParser.add_option("-f","--file",action = "store",type = "string",dest = "fileName")
optParser.add_option("-v","--vison", action="store", dest="verbose",default='gggggg',
help="make lots of noise [default]")
主要用于显示帮助信息,使用optParser.print_help()将帮助栏显示出来。
在action="restore"时对比没使用help参数的'-f'与使用了help参数的'-v',多了一行帮助信息。
Usage: myprog[ -f ][-s ] arg1[,arg2..]
Options:
-h, --help show this help message and exit
-f FILENAME, --file=FILENAME
-v VERBOSE, --vison=VERBOSE
make lots of noise [default]
在action="restore_false"时。
optParser.add_option("-f","--file",action = "store",type = "string",dest = "fileName")
optParser.add_option("-v","--vison", action="store", dest="verbose",default='gggggg',
help="make lots of noise [default]")
两个对比的输出结果如下
Usage: myprog[ -f ][-s ] arg1[,arg2..]
Options:
-h, --help show this help message and exit
-f FILENAME, --file=FILENAME
-v, --vison make lots of noise [default]
参数:type
没有仔细测试,但知道一点时如果type="string"时,将无法使用action="store_false"和action="store_true"。不知是否可以将type理解成verbose的返回值类型。
关于输入的的参数fakeArgs的说明
还是用之前的代码分析
from optparse import OptionParser
MSG_USAGE = "myprog[ -f ][-s ] arg1[,arg2..]"
optParser = OptionParser(MSG_USAGE)
optParser.add_option("-f","--file",action = "store",type="string",dest = "fileName")
optParser.add_option("-v","--vison", action="store", dest="verbose",default='gggggg',
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
print args
fakeArgs中的值对于各选项'-v','-f'来说都是前后两个值配对的。
1、正常情况:
结果如下
则options的值为: {'verbose':'good luck to you', 'fileName': 'file.txt'}
args的值为: ['arg2', 'arge']
2、不正常情况:
如果连续出现两个选项'-f','-v'。
fakeArgs = ['-f','-v','good luck to you', 'arg2', 'arge']
'-v'作为值传给了fileName。
但verbose返回的是默认值'gggggg',如果没设置将会返回None。换句说话,就是没检测到参数'-v'的存在,这也再一次说明了,fakeArgs中键值配对的观念。前一个数作为选项,后一个作为值。
结果如下:
则options的值为: {'verbose':'gggggg', 'fileName': '-v'}
args的值为: ['good luck to you','arg2', 'arge']
3、如果多出一个'x'未被定义则程序会报错。
fakeArgs = ['-x','-f','file.txt','-v','good luck to you', 'arg2', 'arge']
好了,关于optParse这个模块就只学到了这些东西。
python hank_python optparse模块相关推荐
- Python [9] optparse模块生成命令行帮助信息
起初,最先接触python命令行传参是sys模块的argv方法,此方法功能简单,稍微增加一些需求,就不难满足需要了 那么今天就和大家聊聊optparse模块来替换sys模块的argv方法 一.optp ...
- 【转】Python之optparse模块OptionParser的使用方法
一.基本用法 optparse,是一个更够让程序设计人员轻松设计出简单明了.易于使用.符合标准的Unix命令例程式的Python模块.生成使用和帮助信息 首先你必须导入该类,并创建一个OptionPa ...
- Python下使用optparse模块实现对多个文件进行统计【二】
一个取代shell wc -l 命令的python小脚本 1.通过python下optparse模块下OptionParser类是新对文件的统计 #!/opt/data/ipy/bin/python ...
- python getopt argparse_python OptParse模块和argparse命令行解析的用法详解
https://www.cnblogs.com/wj-1314/p/8974021.html OptParse模块的简单介绍 Python 有两个内建的模块用于处理命令行参数: 一个是 getopt只 ...
- Python中的 optparse模块
python的内置模块中对于命令行的解析模块共两个getopt 和 optparse .不过getopt过于简单,往往不能满足需求.此时可以使用optparse模块.这个模块相对于getopt更新,功 ...
- python 获取参数模块_Python中获取启动程序时后面跟的参数的方法(optparse模块)【冰斌棒】...
Python中获取启动程序时后面跟的参数的方法(optparse模块)[冰斌棒] 3年前 (2018-01-29) 作者:冰斌棒 分类:冰斌棒18程序计划 阅读次数:871 评论(0 ...
- python中parse是什么_Python中optparse模块使用浅析
最近遇到一个问题,是指定参数来运行某个特定的进程,这很类似Linux中一些命令的参数了,比如ls -a,为什么加上-a选项会响应.optparse模块实现的也是类似的功能,它是为脚本传递命令参数. 使 ...
- python自学argparse模块
argparse模块 argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块 使用步骤 import argparse # 导入模块,这个没什么说的 ...
- optparse模块
该模块提供了解析命令行选项的接口,其中optparse已经在2.7以后的版本中已经不再继续开发好此模块,从2.7后,将开发argparse模块. optparse模块使用的代码示例: #!/bin/s ...
最新文章
- 工作中 99% 能用到的 Git 命令
- nn.Sequential(*modules)
- Idea导入maven项目不自动识别pom.xml
- java编译源文件_Java实现编译源文件(Java源码)
- Golang的数组与切片——详解
- 【AS3代码】正则表达式的各种用法和小实例
- PHP操作tcpdf插件生成PDF
- mysql 参数化分页_LR12 DataWizard从Mysql数据取参数化数据
- epoll监听文件_epoll
- 写论文、搞科研、读大学必备的28款软件。
- hal定时器回调函数
- 怎样免费设置QQ空间背景音乐
- 被你们恶搞多年,鲁迅终于坐不住了:求求你们了!我没说过!
- 很方便的密码加密算法BCrypt
- tcp/ip详解卷一总结
- C中的 feof() 和 EOF
- 总算挽回点面子,中国上月为印尼发射通信卫星定点成功 运行正常
- uview组件库表单验证,验证对象中的对象
- php赛车游戏开发文档,React 开发一款简单的赛车游戏
- 软件Bug五种等级,一级最致命
热门文章
- 11个小游戏教你玩趣编程,在玩中也能学!
- Hermez官方文档翻译(四)开发者-SDK (有自己测试验证demo)
- unity 裙子摆动_随风摆动的草丛——Unity shader graph 2D初探
- python-pygame实现飞机大战-5-屏幕渲染绘制分数、生命数、超级炸弹数以及暂停功能
- [日常训练] 联络网
- oracle脚本怎么跑,命令行执行oracle的sql脚本逃跑吧少年秒开钥匙下载最
- 【无机纳米材料科研制图——Visio 0309】使用任意多边形工具描边出小鼠简图
- 美国无人机技术及相关项目
- 用Java模拟斗地主游戏
- 谷粒商城分布式基础篇1-个人版