当前位置:Gxlcms > Python > Python中optparse模块使用浅析

Python中optparse模块使用浅析

时间:2021-07-01 10:21:17 帮助过:18人阅读

最近遇到一个问题,是指定参数来运行某个特定的进程,这很类似Linux中一些命令的参数了,比如ls -a,为什么加上-a选项会响应。optparse模块实现的也是类似的功能,它是为脚本传递命令参数。

使用此模块前,首先需要导入模块中的类OptionParser,然后创建它的一个实例(对象):

代码如下:


from optparse import OptionParser
parser = OptionParser() #这里也可以定义类的参数,后续有

接着就可以添加选项了,基本语法:

代码如下:


parser.add_option(opt_str, ...,
attr=value, ...)


   每个opt_str可以有多个选项字符串,比如-f 和--file(就行Linux命令行中ls -a和ls --all效果一样),只要定义了这些选项,则在命令行输入的时候这些选项就会被识别,否则报错。opt_str的定义可以如下:
代码如下:


parser.add_option("-f", "--file", ...) #-f 和 --file 是作为调用时的参数的标签,会被识别


当选项被定义好后,则可以调用parse_args()函数来获取我们定义的选项和参数
代码如下:


(options, args) = parser.parse_args() #parse_args可以有参数,不定义的话使用默认的sys.argv[1:]


parse_args()返回两个值,一个是选项options(如:-f),另一个是参数args,即除选项options以外的值(如:test.txt)

add_option中最重要的四个option的属性是:action,type,dest(destination),help。这四个中action又是最基础的。

action参数(附带介绍了type、dest):

action参数告诉optparse该做什么当它在命令行中遇到选项时。action有三种存储方式:store、store_false、store_true。如果不指定action的值,默认的是store,它告诉optparse将继续读取下一个参数(type),保证类型的正确性,并将它将值存储在一个变量(dest)中,即将命令行中输入的字符串将它存为options的属性,这样可以直接调用。啰嗦了一大堆,我自己都被搞晕了~~~~,先看个例子吧!

代码如下:


>>> parser.add_option("-f", "--file",action="store", type="string", dest="filename")