optparse是用來在命令行添加選項的模塊,簡單命令行參數可以使用sys.argv[n]來實現,對於複雜的命令行參數使用optparse模塊會更加方便
示例代碼:opt.py
- #!/usr/bin/env python
- import optparse
- usage = "%prog [-F <from_step>]"
- parser = optparse.OptionParser(usage)
- parser.add_option("-F","--from",dest="from_step",default=1,type="int",help="the from step,default 1",metavar="FROM_STEP")
- (options,args) = parser.parse_args()
- print "options:%s" % options
- print "args:%s" % args
- print "from_step:%s" % options.from_step
運行python opt.py -F 2 bob, 輸出選項和參數的值 如下
- options:{'from_step': 2}
- args:['bob']
- from_step:2
運行python opt.py -h, 輸出幫助信息如下
- Usage: opt.py [-F <from_step>]
- Options:
- -h, --help show this help message and exit
- -F FROM_STEP, --from=FROM_STEP
- the from step,default 1
步驟:
1、產生OptionParser的對象parser。並傳入usage信息生成幫助信息的Usage部分
- usage = "%prog [-F <from_step>]"
- parser = optparse.OptionParser(usage)
2、調用OptionParser.add_option函數,添加選項
- parser.add_option("-F","--from",dest="from_step",
- default=1,type="int",help="the from step,
- 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函數生成字典和列表
- (options,args) = parser.parse_args()
options是一個字典(帶選項的參數組成),args是一個列表(不帶選項的參數組成)
此外:調用OptionParser的print_help()函數會輸出幫助信息