python中optparse中的简单介绍

最近在学习的时候,看到了optparse模块,以前都没有使用过,不知道干嘛的,看了一些大神的讲解,现在写写自己的见解。

首先贴上一段代码

# -*- encoding:utf-8 -*-
from optparse import OptionParser

VERSION="0.0.1"
usage = "usage: %prog [options] arg1 arg2"

def main():
    parser=OptionParser(usage)
    parser.add_option("-f", #短参数
                      "--file",#长参数(短参数的全称)
                      dest="filename",#表示此option在经过optionparser解析后的options对象中成员的名字,默认使用long option
                      action="store",#表示对此option的处理方式,默认值为store,表示存储option的值到解析后的options对象的成员中
                      help="read data from FILENAME")
    parser.add_option("-v",
                      "--verbose",
                      action="store_true",
                      dest="verbose")
    args=['-f','file.txt','-v','good luck to you', 'arg2', 'arge']
    (options,argslist)=parser.parse_args(args)
    print argslist,len(argslist)
    print options
    print options.filename

if __name__ == "__main__": main()

代码运行结果为:

['good luck to you', 'arg2', 'arge'] 3
{'verbose': True, 'filename': 'file.txt'}
file.txt

首先介绍一下optparse到底是干什么的:

  optparse可以做到类似与linux里面的做法,比如-h,可能表示的就是help,上面的程序-f表示的就是file,也就是filename的名字,所以options.filename

最后输出的也就是file.txt。

现在解释一下上面的程序为什么输出是这个样子的:

  首先,-f之后是file.txt,所以filename对应的就是file.txt,对于-v来说,因为action="store_true"(如果action="store",且在数据中加入vision,那么verbose对应的就是vision),所以verbose对应的值是true。这些值加入options,剩下的值将加入argslist中。

  如果在输出中加入print parser.print_help(),输出为:

                                  Usage: first.py [options] arg1 arg2   ( first.py为本人python中的项目命名)

                          Options:
                             -h, --help   show this help message and exit
                             -f FILENAME, --file=FILENAME
                                   read data from FILENAME
                             -v, --verbose
                             None

下面再举几个例子:

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]

 

 

posted @ 2017-09-20 19:05  ybf&yyj  阅读(1445)  评论(0)    收藏  举报