Python 的 OptionParser 模組

來源:互聯網
上載者:User

標籤:

OptionParser  可以方便地產生標準的、符合Unix/Posix 規範的命令列說明。

from optparse import OptionParserparser = OptionParser()parser.add_option(‘-p‘, ‘--pdbk‘, action = ‘store_true‘, dest = ‘pdcl‘, default = False,                 help = ‘write pdbk data to oracle db‘)parser.add_option(‘-z‘, ‘--zdbk‘, action = ‘store_true‘, dest = ‘zdcl‘, default = False,                 help = ‘write zdbk data to oracle db‘)(options, args) = parser.parse_args()if options.pdcl == True:    print ‘pdcl is true.‘if options.zdcl == True:    print ‘zdcl is True.‘

簡單流程

# 引入OptionParser類,建立OptionParser對象from optparse import OptionParserparser = OptionParser()# 定義命令列參數parser.add_option(opt_str, ..., attr = value, ...)# 解析命令列參數(options, args) = parser.parse_args()

可以在程式中手動傳遞一個命令列列表到parse_args(),否則預設使用 sys.argv[:-1]
parse_args()返回兩個值,options 儲存命令列參數值,args 是由 positional arguments 組成的列表

add_option() 用來加入選項,parse_args() 解析選項

樣本:

from optparse import OptionParserparser = OptionParser()parser.add_option(‘-f‘, ‘--file‘, dest = ‘filename‘, metavar = ‘FILE‘,                 help = ‘write report to FILE‘)parser.add_option(‘-q‘, ‘--quit‘, action = ‘store_false‘, dest = ‘verbose‘, default = True,                help = ‘Don\‘t print status message to stdout.‘)(options, args) = parser.parse_args()

action 預設 store 表示將參數值儲存到 options 對象裡

樣本:

from optparse import OptionParserparser = OptionParser()parser.add_option(‘-f‘, ‘--file‘, action = ‘store‘, type = ‘string‘, dest = ‘filename‘)args = [‘-f‘, ‘foo.txt‘](options, args) = parser.parse_args(args)print options.filename

type 預設 ‘string‘,也可以是 ‘int‘ 或 ‘float‘ 等,長參數名可選,dest 未指定時將用命令列的參數名來存取 options 對象的值

store 其他兩種形式:store_true 和 store_false,還有 store_const、append、count、callback

樣本:

parser.add_option(‘-v‘, action = ‘store_true‘, dest = ‘verbose‘)parser.add_option(‘-q‘, action = ‘store_false‘, dest = ‘verbose‘)# 當解析到 ‘-v‘, options.verbose 為 True,解析到 ‘-q‘,options.verbose 為 False

default 設定參數預設值

樣本:

parser.add_option(‘-f‘, action = ‘store‘, dest = ‘filename‘, default = ‘foo.txt‘)parser.add_option(‘-v‘, action = ‘store_true‘, dest = ‘verbose‘, default = True)# 也可以使用 set_default()parser.set_defaults(filename = ‘foo.txt‘, verbose = True)parser.add_option(...)(options, args) = parser.parse_args()

help 產生協助資訊

樣本:

usage = ‘usage: %prog [options] arg1 arg2‘parser = OptionParser(usage = usage)parser.add_option(‘-v‘, ‘--verbose‘, action = ‘store_true‘, dest = ‘verbose‘, default = True,                 help = ‘make lots of noise [default]‘)parser.add_option(‘-q‘, ‘--quiet‘, action = ‘store_false‘, dest = ‘verbose‘,                 help = ‘be very quiet‘)parser.add_option(‘-f‘, ‘--filename‘, metavar = ‘FILE‘,                 help = ‘write output to FILE‘)parser.add_option(‘-m‘, ‘--mode‘, metavar=‘MODE‘, default = ‘intermediate‘,                 help = ‘interaction mode: novice, intermediate, or expert [default: %default]‘)

optparse 解析到 help 後不再解析其他命令列參數,usage 資訊會優先列印,預設 "usage: %prog [options]"

metavar 提醒使用者該參數期待的參數,如 metavar = ‘mode‘ 會在協助中顯示成 -m MODE, --mode=MODE

OptionGroup 參數分組

樣本:

group = OptionGroup(parser, ‘Dangerous Options‘,                    ‘Caution: use these options at your own risk. It is believed that some of them bite.‘)group.add_option(‘-g‘, action = ‘store_true‘, help = ‘Group option.‘)parser.add_option_group(group)

version 建立OptionParser對象時指定該參數,會解釋成 --version 命令列參數

optparser 可以自動探測並處理一些使用者異常,也可以使用 parser.error() 方法來自訂部分異常的處理

if options.a and options.b:    parser.error(‘options -a and -b are mutually exclusive‘)


Python 的 OptionParser 模組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.