optparse是用来在命令行添加选项的模块,简单命令行参数可以使用sys.argv[n]来实现,对于复杂的命令行参数使用optparse模块会更加方便

示例代码:opt.py

  1. #!/usr/bin/env python 
  2. import optparse 
  3. usage = "%prog [-F <from_step>]" 
  4. parser = optparse.OptionParser(usage) 
  5.  
  6. parser.add_option("-F","--from",dest="from_step",default=1,type="int",help="the from step,default 1",metavar="FROM_STEP"
  7. (options,args) = parser.parse_args() 
  8. print "options:%s" % options 
  9. print "args:%s" % args 
  10. print "from_step:%s" % options.from_step 

运行python opt.py -F 2 bob, 输出选项和参数的值 如下

  1. options:{'from_step': 2} 
  2. args:['bob'] 
  3. from_step:2 

运行python opt.py -h, 输出帮助信息如下

  1. Usage: opt.py [-F <from_step>
  2.  
  3. Options: 
  4.   -h, --help            show this help message and exit 
  5.   -F FROM_STEP, --from=FROM_STEP 
  6.                         the from step,default 1 

步骤:

1、产生OptionParser的对象parser。并传入usage信息生成帮助信息的Usage部分

  1. usage = "%prog [-F <from_step>]" 
  2. parser = optparse.OptionParser(usage) 

2、调用OptionParser.add_option函数,添加选项

  1. parser.add_option("-F","--from",dest="from_step"
  2.                   default=1,type="int",help="the from step, 
  3.                   default 1,metavar="FROM_STEP"

add_option()的参数说明

首先是长短选项 -F和--from

action:存储方式,分为三种store,store_false,store_true

 

详细分析:

 1)action="store"默认值,将命令行选项后面的值(示例中-F 2)和dest的值(from_step)组成字典({'from_step':2})并赋值给options,所以options.from_step的值为2

 2)action="store_true",options.from_step的值是Ture,不是2

3)action="store_false",options.from_step的值是False,不是2

type:参数类型

dest:存储的变量,即生成字典的key

default:设置参数的默认值

help:帮助信息

metavar:帮助信息中用到

3、调用OptionParser的parse_args函数生成字典和列表

  1. (options,args) = parser.parse_args() 

options是一个字典(带选项的参数组成),args是一个列表(不带选项的参数组成)

 

此外:调用OptionParser的print_help()函数会输出帮助信息