国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python optparse模塊使用實例

python optparse模塊使用實例

2020-06-02 10:06腳本之家 Python

這篇文章主要介紹了python optparse模塊使用實例,optparse是專門來處理命令行選項的,本文就講解了它的使用方法,需要的朋友可以參考下

使用命令行時,如果要添加選項的話,python 2.3里新增加了一個模塊叫optparse,也是專門來處理命令行選項的。

復制代碼 代碼如下:


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用來加入選項,action是有store,store_true,store_false等,dest是存儲的變量,default是缺省值,help是幫助提示

 

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

》1.產生一個 optparse.OptionParser 的物件。可以在產生時將"程式的命令列說明" (usage) 做為參數,交給 OptionParser 的建構子:

 

復制代碼 代碼如下:

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


》2.呼叫 OptionParser.add_option() 加入接受的 option:

復制代碼 代碼如下:

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


參數 action 有許多種類,預設是 "store",所以即使省略也無妨,其它的 action 種類在下面會繼續說明。

 

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

復制代碼 代碼如下:

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


》3.呼叫 OptionParser.parse_args() 進行解讀。如果沒有傳入參數, OptionParser 預設會以 sys.argv[1:] 為對象進行解讀。OptionParser.parse_args() 會傳回一個 tuple,由 optparse.Values 和 一個 list 所組成。下例傳入一個假造的參數列:

復制代碼 代碼如下:

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


最後會得到的輸出結果:

復制代碼 代碼如下:

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


這是一個簡單的範例,說明了 OptionParser 的一般使用方式。透過這個例子,可以看到如果為程式加入 option, 並且在程式中取得 option argument 和 positional argument。OptionParser.parse_args() 還有許多用法,下面會說明一部份。

 

為程式加入 flag option:

許多的 Unix 命令擁有 "-v", "-q" 的 option,代表"提供詳細訊息"或是"不顯示訊息"。要做到這一點,只要在程式中加入下列的 option :

復制代碼 代碼如下:

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;如果命令列參數中出現了 "-v",則 opts.verbose 將會是 True;相反的,第二個 add_option() 加入了一個 "-q" option;如果命令列參數中出現了 "-q",則 opts.verbose 將會是 False,這兩者並不相悖,程式可以設計成:當收到 "-v" 時,顯示詳細訊息;當收到 "-q" 時,顯示概略訊息,或完全不顯示;當兩者都沒有收到,則顯示一般的訊息。

 

設定 option 的預設值:

上述的例子都假設命令例會收到預期中的 option,那麼如果沒有 option 時,接收到的 option 值會是什麼呢?答案是 None!如果想為 option 提供預設值,只要在 OptionParser.parse_args()中指定參數 default 就行了:

復制代碼 代碼如下:

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()


上述的程式碼為程式加入了兩個 option,當 "-v" 沒有出現時, opts.verbose 預設值為 True;當 "-q" 被指定時, opts.verbose 被設定為 False,和上一個例子有點不同。再看下一個例子:

復制代碼 代碼如下:

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


opts.verbose 的預設值會是什麼?答案是 True,最後一個指定到同一個目標的 option 預設值會被採用。

 

一般的 option 亦可加入預設值:

復制代碼 代碼如下:

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


為程式加入說明:

 

標準的 Unix 命令大多有著 "-h", "--help" 的 option,會將使用說明印出來。在 OptionParser.parse_args() 中指定 "help" 參數,並指定說明的字串,就可以為這個 option 加入說明了:

復制代碼 代碼如下:

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


當程式收到 "-h" 或 "--help",交給 OptionParser 解讀時,會自動印出說明內容,而忽略其它的 argument:

復制代碼 代碼如下:

usage: <yourscript> [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'


還記得一開始提到交給 OptionParser 建構子的參數 MSG_USAGE 嗎? optparse 套件對 usage 訊息也提供了一些支援。在 usage 中使用 "%prog" 關鍵字, OptionParser 會自動將其代換為程式名,即 sys.args[0]:

復制代碼 代碼如下:

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


如果程式名為 "myprog",則出現在 help 訊息中的 usage 就會是:

復制代碼 代碼如下:

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


如果OptionParser 建構子沒有收到任何參數,則會自動產生一個 usage 訊息:

復制代碼 代碼如下:

"usage: %prog [options]"


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

 

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久九| 日本少妇一区二区三区 | 精品亚洲一区二区三区四区五区 | 亚洲欧美日韩电影 | 日韩在线一区二区 | 日本天天操 | 色吧av| av中文字幕在线 | 动漫爱爱视频 | 久草免费在线 | www.久草.com| 午夜小视频在线 | 北条麻妃在线一区二区免费播放 | 精品亚洲成a人在线观看 | 麻豆国产一区二区三区 | 日韩毛片在线观看 | 欧美一级黄色片网站 | 久久99精品久久久久 | 日韩一区精品 | 能看的av网站 | 久久天堂电影 | 国产综合亚洲精品一区二 | 欧美在线视频一区 | 国产日产久久高清欧美一区 | 久久噜噜噜精品国产亚洲综合 | 欧洲美女性开放视频 | 亚洲精品一区二区三区在线 | 国产精品久久久久久久久久久久久久久久 | 日韩一区二区电影 | 久久久久国产 | 国产精品久久久久久亚洲影视 | 亚洲性在线 | 精品免费在线 | 羞羞网站在线观看 | 亚洲区欧美区 | 久久中文字幕一区二区三区 | 国产视频网 | 久久天天 | 亚洲精品一区二区三区蜜桃久 | 香蕉久久久久久 | 国产午夜精品美女视频明星a级 |