optparse模块OptionParser学习
来源:互联网 发布:优才创智科技公司 知乎 编辑:程序博客网 时间:2024/05/16 07:00
optparse是专门用来在命令行添加选项的一个模块。
首先来看一段示例代码
from optparse imp
MSG_USAGE = "myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]"
optParser = OptionParser(MSG_USAGE)
optParser.add_option("-f","--file",act
ooptParser.add_option("-v","--vison", act
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]
基本使用步骤
1、 产生一个OptionParser的物件optParse。传入的值MSG_USAGE可被调用打印命令时显示出来。
MSG_USAGE = "myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]"
optParser = OptionParser(MSG_USAGE)
2、 调用OptionParser.add_option()添加选项
optParser.add_option("-f","--file",act
optParser.add_option("-v","--vison", act
help="make lots of noise [default]")
add_option()参数说明:
act
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模拟输入的值。
从返回结果中可以看到,
l options为是一个directory,它的内容fakeArgs为“参数/值 ”的键值对。
l args 是一个list,它的内容是fakeargs除去options后,剩余的输入内容。
l options.version和options.fileName都取到与options中的directory的值。
4、 调用OptionParser.optParser.print_help()输出帮助信息
optParser.print_help()
显示返回结果
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]
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", act
help="make lots of noise [default]")
参数act
存储方式,分为三种store、store_false、store_true。
下面分别对三种方式进行说明:
第一种:act
1、如果输入的参数fakeArgs中存在"-v",则verbose返回的值为fakeArgs中的紧跟'-v'的数,即"good luck to you"。这也正好options中的键值对应,剩下配对的参数都传给了args。请见以下代码
optParser.add_option("-f","--file",act
optParser.add_option("-v","--vison", act
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",act
optParser.add_option("-v","--vison", act
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']
第二种:act
1、fakeArgs中存在'-v',verbose将会返回True而不是"good luck to you"。意思就是说verbose的值与'-v'
的后一位无关,只与'-v'存不存在就关。
示例代码
optParser.add_option("-f","--file",act
optParser.add_option("-v","--vison", act
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同样返回空(我就不运行代码了)。
第三种:act
这与act
参数:default
optParser.add_option("-v","--vison", act
设置些参数是用于返回verbose的返回值。
如果act
optParser.add_option("-v","--vison", act
fakeArgs = ['-f','file.txt','-v','good luck to you', 'arg2', 'arge']
如果fakeArgs中存在'-v',则返回值为,"good luck to you"
如果不存在'-v'则返回值为,"gggggg"
如果act
optParser.add_option("-v","--vison", act
如果fakeArgs中存在'-v',则返回值为True。
如果fakeArgs中不存在'-v',则返回值为None
再一次说明了,如果act
注:act
参数:help
optParser.add_option("-f","--file",act
optParser.add_option("-v","--vison", act
help="make lots of noise [default]")
主要用于显示帮助信息,使用optParser.print_help()将帮助栏显示出来。
在act
Usage: myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]
Options:
-h, --help show this help message and exit
-f FILENAME, --file=FILENAME
-v VERBOSE, --vison=VERBOSE
make lots of noise [default]
在act
optParser.add_option("-f","--file",act
optParser.add_option("-v","--vison", act
help="make lots of noise [default]")
两个对比的输出结果如下
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]
参数:type
没有仔细测试,但知道一点时如果type="string"时,将无法使用act
关于输入的的参数fakeArgs的说明
还是用之前的代码分析
from optparse imp
MSG_USAGE = "myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]"
optParser = OptionParser(MSG_USAGE)
optParser.add_option("-f","--file",act
optParser.add_option("-v","--vison", act
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这个模块就只学到了这些东西。
- optparse模块OptionParser学习
- optparse模块OptionParser学习
- optparse模块OptionParser学习
- Python - optparse 之 OptionParser
- python模块学习---optparse
- optparse模块
- optparse模块
- optparse模块
- string sys optparse模块学习网址总汇
- Python模块学习——optparse
- Python模块学习——optparse
- Python模块学习——optparse
- Python模块学习——optparse
- Python模块学习——optparse
- Python模块学习——optparse
- Python模块学习——optparse
- Python模块学习——optparse
- Python中optparse模块使用学习
- javascript中style后面的属性和css属性对照表
- RFT 无法识别弹出的窗口
- myeclipse 8.5 在线安装SVN
- SVN:cannot map the project with svn provider问题的解决办法
- 下一代SkyDrive更多功能揭晓:支持更多格式,更大文件
- optparse模块OptionParser学习
- Office 公式错误替换
- 函数时间复杂度的计算详解(转自CSDN)
- ajax同步异步详解与回调带参数实例测试
- static与final的注意点
- ++运算符 前置、后置 对应的汇编语言,了解整个内部过程
- FMS3.5的安装使用及下载地址
- 浅析Android中Drawable(hdpi,ldpi,mdpi)目录的区别 .
- ExpandableListView的使用