茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    Python中optparse模塊使用淺析
    來源:易賢網(wǎng) 閱讀:1004 次 日期:2015-01-03 10:21:50
    溫馨提示:易賢網(wǎng)小編為您整理了“Python中optparse模塊使用淺析”,方便廣大網(wǎng)友查閱!

    最近遇到一個問題,是指定參數(shù)來運行某個特定的進程,這很類似Linux中一些命令的參數(shù)了,比如ls -a,為什么加上-a選項會響應。optparse模塊實現(xiàn)的也是類似的功能,它是為腳本傳遞命令參數(shù)。

    使用此模塊前,首先需要導入模塊中的類OptionParser,然后創(chuàng)建它的一個實例(對象):

    代碼如下:

    from optparse import OptionParser

    parser = OptionParser()  #這里也可以定義類的參數(shù),后續(xù)有

    接著就可以添加選項了,基本語法:

    代碼如下:

    parser.add_option(opt_str, ...,  

                      attr=value, ...)

      每個opt_str可以有多個選項字符串,比如-f 和--file(就行Linux命令行中l(wèi)s -a和ls --all效果一樣),只要定義了這些選項,則在命令行輸入的時候這些選項就會被識別,否則報錯。opt_str的定義可以如下:

    代碼如下:

    parser.add_option("-f", "--file", ...)  #-f 和 --file 是作為調(diào)用時的參數(shù)的標簽,會被識別

    當選項被定義好后,則可以調(diào)用parse_args()函數(shù)來獲取我們定義的選項和參數(shù)

    代碼如下:

    (options, args) = parser.parse_args() #parse_args可以有參數(shù),不定義的話使用默認的sys.argv[1:]

    parse_args()返回兩個值,一個是選項options(如:-f),另一個是參數(shù)args,即除選項options以外的值(如:test.txt)

    add_option中最重要的四個option的屬性是:action,type,dest(destination),help。這四個中action又是最基礎的。

    action參數(shù)(附帶介紹了type、dest):

    action參數(shù)告訴optparse該做什么當它在命令行中遇到選項時。action有三種存儲方式:store、store_false、store_true。如果不指定action的值,默認的是store,它告訴optparse將繼續(xù)讀取下一個參數(shù)(type),保證類型的正確性,并將它將值存儲在一個變量(dest)中,即將命令行中輸入的字符串將它存為options的屬性,這樣可以直接調(diào)用。啰嗦了一大堆,我自己都被搞暈了~~~~,先看個例子吧!

    代碼如下:

    >>> parser.add_option("-f", "--file",action="store", type="string", dest="filename")

    <Option at 0x2d72f48: -f/--file>

    >>> args = ["-f", "foo.txt"] #這個是模擬命令行的輸入

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

    >>> options.filename

    'foo.txt'

    上述:當optparse看到選項-f時,它將繼續(xù)讀下一個參數(shù)是foo.txt,并將它存儲在options.filename(這個filename就是add_option中的dest),之后dest的值將作為parser的屬性被存儲。所以,當調(diào)用parse_args函數(shù)時,options.filename的值就是foo.txt。這個是以“string”類型存儲的,當然type也可以是int和float等,比如下面的:

    代碼如下:

    parser.add_option("-n", type="int", dest="num")

    注意,這個沒有指定一個長字符串的選項(如:--number),這當然是可以的,不過命令行輸入時選項就只能是-n了,也沒有指定action,使用默認的“store”。再次使用模擬的命令行參數(shù)["-n22"](一個參數(shù)),也可以寫成["-n  22"](作為兩個參數(shù)來傳遞):

    代碼如下:

    >>> parser.add_option("-n", type="int", dest="num")

    <Option at 0x2d71308: -n>

    >>> (options, args) = parser.parse_args(["-n22"])

    >>> print options .num

    22

    如果不指定type參數(shù),默認的是string類型,所以一個最簡單的方式可以寫成這樣:

    代碼如下:

    parser.add_option("-f", dest="filename")

    action另兩種值分別是:“store_true”和“store_false”,這一般作為一個標記使用,例如開始運行一個程序時將flag設為True,退出時將flag設為False??戳讼旅娴睦泳腿靼琢耍寒斶x項遇到v時,它將options.verbose設為True,當選項遇到q時,它將options.verbose設為False:

    代碼如下:

    >>> from optparse import OptionParser

    >>> parser=OptionParser()

    >>> parser.add_option("-v", action="store_true", dest="verbose")

    <Option at 0x2ceb888: -v>

    >>> parser.add_option("-q", action="store_false", dest="verbose")

    <Option at 0x2d68e48: -q>

    >>> fakeArgs = ['-v','hello']

    >>> options, args = parser.parse_args(fakeArgs)

    >>> options.verbose

    True

    >>> fakeArgs = ['-q','bye bye']

    >>> options, args = parser.parse_args(fakeArgs)

    >>> options.verbose

    False

    #如果同時寫兩個選項v和q,它會以哪個為準呢,我試了一下,是以最后出現(xiàn)的為準,呵呵~~

    >>> fakeArgs = ['-q','bye bye','-v','hello']

    >>> options, args = parser.parse_args(fakeArgs)

    >>> options .verbose

    True

    Default參數(shù):

    default參數(shù)很好理解了,即當沒有指定dest的值時,給出個默認值,如下:

    代碼如下:

    >>> parser.add_option("-x", action="store", dest="verbose", default="hahaha")

    <Option at 0x2d77148: -x>

    >>> options, args = parser.parse_args() #這里沒有傳參數(shù)

    >>> options.verbose

    'hahaha'

    如果這樣的話,那下面這兩句的效果就一樣了(前提是不給parse_args()函數(shù)傳參:)

    代碼如下:

    parser.add_option("-v", action="store_true", dest="verbose")

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

    help參數(shù):

    這個參數(shù)是為了讓我們定義的“命令”更為逼真,還提供了幫助消息了呢!呵呵~~簡單用法如下:

    代碼如下:

    >>> from optparse import OptionParser

    >>> usage = "myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]"

    >>> parser=OptionParser(usage) #這里為類添加了參數(shù)usage

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

    <Option at 0x2bdb888: -f/--file>

    >>> fakeArgs = ['-f','file.txt']

    >>> options, args = parser.parse_args(fakeArgs)

    >>> options.fileName

    'file.txt'

    >>> parser.print_help()

    Usage: myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]

    Options:

      -h, --help            show this help message and exit  #此兩行根據(jù)option自動生成,比較智能額~~

      -f FILENAME, --file=FILENAME

                            no any help  #這是我定義的幫助信息(呵呵,不太友好~~)

    >>> parser.print_usage()

    Usage: myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]  #這是類的usage信息~~很逼真,有木有?

    >>>

    上述是介紹基本的語法,下面舉兩個例子,一個是網(wǎng)上找的一個模擬命令行的參數(shù)的例子,另一個是“真實”的例子~~~

    Example1:

    代碼如下:

    from optparse import OptionParser

    usage = "myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]"

    optParser = OptionParser(usage)

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

    ooptParser.add_option("-v","--vison", action="store_false", dest="verbose",default='None',

                         help="make lots of noise [default]")

    fakeArgs = ['-f','file.txt','-v','good luck to you', 'arg2', 'arge'] 

    options, args = optParser.parse_args(fakeArgs)

    print options.fileName

    print options.verbose

    print options

    print args

    print optParser.print_help()

    運行結果是:

    代碼如下:

    file.txt

    False

    {'verbose': False, 'fileName': 'file.txt'}

    ['this is some what', 'arg2', 'arge']

    Usage: myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]

    Options:

      -h, --help            show this help message and exit

      -f FILENAME, --file=FILENAME

      -v, --vison           make lots of noise [default]

    Example2:

    一個簡單的例子,就是將給腳本傳選項n時,則輸出的是n的參數(shù)的值,否則給出默認值(腳本保存在E盤):

    代碼如下:

    from optparse import OptionParser

    optParser = OptionParser()

    optParser.add_option("-n","--number",action = "store",type="int",dest = "intNumber")

    optParser.add_option("-v","--version", action="store_false", dest="verbose",default='gggggggg',help="no help")

    options, args = optParser.parse_args()

    if options.intNumber is not None:  #當有選項n時,則使用給出的參數(shù)值

        #num = options.intNumber

        print options.intNumber,options.verbose

    else:

        for i in range(1,5):  #不給選項n的情況下,默認輸出的是1~4

            #num = i

            print i

    更多信息請查看IT技術專欄

    更多信息請查看腳本欄目
    易賢網(wǎng)手機網(wǎng)站地址:Python中optparse模塊使用淺析

    2026上岸·考公考編培訓報班

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網(wǎng)