欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python optparse模塊使用實(shí)例

系統(tǒng) 1607 0

使用命令行時(shí),如果要添加選項(xiàng)的話(huà),python 2.3里新增加了一個(gè)模塊叫optparse,也是專(zhuān)門(mén)來(lái)處理命令行選項(xiàng)的。

復(fù)制代碼 代碼如下:

from optparse import OptionParser
parser = 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'


add_option用來(lái)加入選項(xiàng),action是有store,store_true,store_false等,dest是存儲(chǔ)的變量,default是缺省值,help是幫助提示

最后通過(guò)parse_args()函數(shù)的解析,獲得選項(xiàng),如options.pdcl的值。
基本使用流程:

》1. ?a生一?? optparse.OptionParser 的物件。可以在?a生?r??"程式的命令列?f明" (usage) 做????,交?o OptionParser 的建??子:

復(fù)制代碼 代碼如下:

from optparse import OptionParser
??? MSG_USAGE = "myprog[ -f ][ -s ] arg1[, arg2...]"
??? optParser = OptionParser(MSG_USAGE)

》2. 呼叫 OptionParser.add_option() 加入接受的 option:
復(fù)制代碼 代碼如下:

optParser.add_option("-f",
???????????????????????? "--file",
???????????????????????? action = "store",
???????????????????????? type = "string",
???????????????????????? dest = "fileName")

??? action 有?S多?N?,?A?O是 "store",所以即使省略也?o妨,其它的 action ?N?在下面???^?m?f明。

若有一??以上的 option,重覆上述的方式加入(注意:以下省略了 action ???):

復(fù)制代碼 代碼如下:

optParser.add_option("-s",
???????????????????????? "--someopt",
???????????????????????? type = "string",
???????????????????????? dest = "someopt")

》3. 呼叫 OptionParser.parse_args() ?M行解?x。如果?]有?魅???, OptionParser ?A?O??以 sys.argv[1:] ??ο筮M(jìn)行解?x。OptionParser.parse_args() ???骰匾?? tuple,由 optparse.Values 和 一?? list 所?M成。下例?魅胍??假造的??盜?:
復(fù)制代碼 代碼如下:

fakeArgs = ['-f', 'thefile.txt', '-s', 'xyz', 'arg1', 'arg2', 'arge']
???
??? options, args = optParser.parse_args(fakeArgs)
???
??? print options.fileName
??? print options.someopt
??? print args

最後??得到的?出?Y果:
復(fù)制代碼 代碼如下:

thefile.txt
??? xyz
??? ['arg1', 'arg2', 'arge']

?@是一????蔚墓?例,?f明了 OptionParser 的一般使用方式。透?^?@??例子,可以看到如果?槌淌郊尤? option, ?K且在程式中取得 option argument 和 positional argument。OptionParser.parse_args() ?有?S多用法,下面???f明一部份。

?槌淌郊尤? flag option:

?S多的 Unix 命令?磧? "-v", "-q" 的 option,代表"提供???息"或是"不?@示?息"。要做到?@一?c,只要在程式中加入下列的 option :

復(fù)制代碼 代碼如下:

parser.add_option("-v", action="store_true", dest="verbose")
??? parser.add_option("-q", action="store_false", dest="verbose")
??? opts, args = parser.parse_args()

第一?? add_option() 加入了一?? "-v" 的 option;如果命令列??抵諧霈F(xiàn)了 "-v",?t opts.verbose ???是 True;相反的,第二?? add_option() 加入了一?? "-q" option;如果命令列??抵諧霈F(xiàn)了 "-q",?t opts.verbose ???是 False,?@?燒?K不相悖,程式可以?O?成:??收到 "-v" ?r,?@示???息;??收到 "-q" ?r,?@示概略?息,或完全不?@示;???燒叨?]有收到,?t?@示一般的?息。

?O定 option 的?A?O值:

上述的例子都假?O命令例??收到?A期中的 option,那?N如果?]有 option ?r,接收到的 option 值??是什?N呢?答案是 None!如果想?? option 提供?A?O值,只要在 OptionParser.parse_args()中指定??? default 就行了:

復(fù)制代碼 代碼如下:

parser.add_option("-v", action="store_true", dest="verbose", default = True)
??? parser.add_option("-q", action="store_false", dest="verbose")
??? opts, args = parser.parse_args()

上述的程式?a?槌淌郊尤肓??? option,?? "-v" ?]有出?F?r, opts.verbose ?A?O值?? True;?? "-q" 被指定?r, opts.verbose 被?O定?? False,和上一??例子有?c不同。再看下一??例子:
復(fù)制代碼 代碼如下:

parser.add_option("-v", action="store_true", dest="verbose", default=False)
parser.add_option("-q", action="store_false", dest="verbose", default=True)

opts.verbose 的?A?O值??是什?N?答案是 True,最後一??指定到同一??目?說(shuō)? option ?A?O值??被?裼謾?

一般的 option 亦可加入?A?O值:

復(fù)制代碼 代碼如下:

parser.add_option("-f", action="store", dest="fileName", default = "defaultConfig.txt")

?槌淌郊尤胝f(shuō)明:

??實(shí)? Unix 命令大多有著 "-h", "--help" 的 option,???⑹褂謎f明印出?懟T? OptionParser.parse_args() 中指定 "help" ???,?K指定?f明的字串,就可以?檫@?? option 加入?f明了:

復(fù)制代碼 代碼如下:

parser.add_option("-v",
????????????????????? action="store_true",
????????????????????? dest="verbose",
????????????????????? default=False,
????????????????????? help="make lots of noise [default]")

??程式收到 "-h" 或 "--help",交?o OptionParser 解?x?r,??自?佑〕穌f明?熱?,而忽略其它的 argument:
復(fù)制代碼 代碼如下:

usage: [options] arg1 arg2
?
??? options:
????? -h, --help?????????? show this help message and exit
????? -v, --verbose??????? make lots of noise [default]
????? -q, --quiet????????? be vewwy quiet (I'm hunting wabbits)
????? -fFILE, --file=FILE? write output to FILE
????? -mMODE, --mode=MODE? interaction mode: one of 'novice', 'intermediate'
?????????????????????????? [default], 'expert'

??得一?_始提到交?o OptionParser 建??子的??? MSG_USAGE ??? optparse 套件?? usage ?息也提供了一些支援。在 usage 中使用 "%prog" ?P?I字, OptionParser ??自??⑵浯??Q?槌淌矯?,即 sys.args[0]:
復(fù)制代碼 代碼如下:

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

如果程式名?? "myprog",?t出?F在 help ?息中的 usage 就??是:
復(fù)制代碼 代碼如下:

usage = "usage: myprog [options] arg1 arg2"

如果OptionParser 建??子?]有收到任何???,?t??自?贏a生一?? usage ?息:
復(fù)制代碼 代碼如下:

"usage: %prog [options]"

前提是程式?]有 positional argument。甭??心 option 在 help ?息中排列的方式, OptionParser ??搞定一切,如同前面程式所示。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 天天舔天天 | 91精品观看91久久久久久国产 | 精品国产欧美一区二区 | 美女爽到呻吟久久久久 | 日韩精品极品视频在线观看免费 | 一区二区三区四区在线 | 成人区精品一区二区婷婷 | 91免费国产| 99草视频 | 欧美同性精品xxxx | 一区二区视频在线 | 91成人国产网站在线观看 | 久久久亚洲伊人色综合网站 | 国产精品久久久久久无遮挡 | 色网站免费视频 | 天天摸天天做天天爽在线 | 亚洲已满18点击进入在线观看 | 小明看片成人永久在线观看 | 久久视频免费 | 成人黄色免费网站 | 国产日韩一区二区三区 | 91免费在线看片 | 欧美激情免费在线 | 97骚碰 | 一区二区三区www | 欧美一级片在线看 | 婷婷五 在线播放 | 欧美成人免费高清二区三区 | 国产精品v在线播放观看 | 国产精品一区欧美激情 | 国产成人精品999在线观看 | 欧美在线一级精品 | 久久国产高清 | 午夜视频在线免费播放 | 久久亚洲精品国产精品777777 | 大片在线免费观看 | 97国产精品人妻无码久久久 | 国产综合一区二区 | 亚洲成人av一区二区 | 婷婷影音 | 国产欧美日韩在线观看 |