欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中optparser庫用法實例詳解

 更新時間:2018年01月26日 15:19:49   作者:Marksinoberg  
這篇文章主要介紹了Python中optparser庫用法實例詳解,介紹了optparser的引入,初始化等相關內容,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下

本文研究的主要是Python中optparser庫的相關內容,具體如下。

一直以來對optparser不是特別的理解,今天就狠下心,靜下心研究了一下這個庫。當然了,不敢說理解的很到位,但是足以應付正常的使用了。廢話不多說,開始今天的分享吧。

簡介

optparse模塊主要用來為腳本傳遞命令參數(shù)功能.

引入

在IDE中引入optparser是很方便的。

from optparser import OptionParser

初始化

相對而言,初始化需要我們多注意一點點了。
因為我們有兩種不同的方式來初始化一個parser。

帶有Usage選項:

這樣的好處是可以模擬帶有幫助的終端使用,如下

>>> from optparse import OptionParser
>>> usage = "myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]"
>>> parser=OptionParser(usage) #這里為類添加了參數(shù)usage

顯示的時候就會使這樣的了。

>>> 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 #自定義幫助信息

不帶Usage選項:

正常來說可以不用設置參數(shù)。

parser = OptionParser()

添加選項

為命令行添加選項是我們這次最主要的工作了,也是核心。但是在添加選項之前,我們應該明白,為什么要添加選項?選項的工作原理是什么?這樣我們才能更好的理解optparser的設計思想。

選項:類比于Unix的工作模式。舉例 ls -a 或者 ls -all.
我們添加了一個名為all 的選項,為了簡化操作,默認設置為a.

在OptionParser中要想實現(xiàn)這樣的一個效果,我們只需要借助如下的一行代碼。

# 這只是示意而已,沒有什么意義
parser.add_option('-a' , '--all' )

核心

作為核心就是指add_option的其他的參數(shù)。有如下幾個:

  • action: 驗證輸入數(shù)據(jù)類型是否和type 匹配,并將符合要求的這個參數(shù)存儲到dest變量中。有以下幾個屬性:

1.store 默認值
- store_false 標記而已 配合下邊的那個store_true來進行代碼的“標記”,輔助流程控制。

2.store_true 標記而已

  • type : 指的是對應于參數(shù),如-f,-n等的接下來的那個參數(shù)的數(shù)據(jù)類型,有string,int,float等等
  • dest : 用于保存臨時變量,其值可以作為options的屬性進行訪問。存儲的內容就是如-f,-n 等緊挨著的那個參數(shù)內容。
  • help: 提供用戶友好的幫助信息,一般可以用來解釋本add_option方法的功能闡述。

單純的講起來很枯燥,下面看一個小例子就會明白了。

>>> 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'

對于action屬性可以看看接下來的這段代碼。

>>> 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ù)的作用,其實就是給dest的默認值。

如果我們沒有指定dest的值的話,default的值就會作為dest的默認值來進行使用!

>>> parser.add_option("-x", action="store", dest="verbose", default="defaultvalue")
<Option at 0x2d77148: -x>
>>> options, args = parser.parse_args() #這里沒有傳參數(shù)
>>> options.verbose
'defaultvalue'

完整的demo

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]

總結

以上就是本文關于Python中optparser庫用法詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關文章

  • python取余運算符知識點詳解

    python取余運算符知識點詳解

    在本篇文章中我們給大家整理了關于python取余運算符的寫法以及相關知識點,有興趣的朋友們可以參考學習下。
    2019-06-06
  • Python3中FuzzyWuzzy庫實例用法

    Python3中FuzzyWuzzy庫實例用法

    在本篇文章中小編給各位整理了關于Python3z中FuzzyWuzzy庫實例用法及相關代碼,有興趣的朋友們可以參考下。
    2020-11-11
  • react+django清除瀏覽器緩存的幾種方法小結

    react+django清除瀏覽器緩存的幾種方法小結

    今天小編就為大家分享一篇react+django清除瀏覽器緩存的幾種方法小結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Pytorch 計算誤判率,計算準確率,計算召回率的例子

    Pytorch 計算誤判率,計算準確率,計算召回率的例子

    今天小編就為大家分享一篇Pytorch 計算誤判率,計算準確率,計算召回率的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python?numpy?中l(wèi)inspace函數(shù)示例詳解

    python?numpy?中l(wèi)inspace函數(shù)示例詳解

    這篇文章主要介紹了python?numpy?中l(wèi)inspace函數(shù),本文我們通過示例學習了linspace函數(shù),如果你熟悉NumPy,一定也注意到還有np.arange函數(shù),兩者最大差異是,linspace能夠精確控制終止值終值,而arange能夠更直接地控制序列中值之間的增量,需要的朋友可以參考下
    2023-03-03
  • Python unittest單元測試框架及斷言方法

    Python unittest單元測試框架及斷言方法

    這篇文章主要介紹了Python unittest單元測試框架及斷言方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Python PIL實現(xiàn)GIF壓縮工具

    Python PIL實現(xiàn)GIF壓縮工具

    本文將結合wxPython的GUI框架和PIL(Python Imaging Library)的圖像處理能力編寫一個GIF壓縮工具,并提供了兩種壓縮方式,感興趣的小伙伴可以了解下
    2024-10-10
  • python名片管理系統(tǒng)開發(fā)

    python名片管理系統(tǒng)開發(fā)

    這篇文章主要為大家詳細介紹了python名片管理系統(tǒng)開發(fā),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • Python3.8對可迭代解包的改進及用法詳解

    Python3.8對可迭代解包的改進及用法詳解

    這篇文章主要介紹了Python3.8對可迭代解包的改進及用法詳解,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • python進階從青銅到王者一定會用上的Python技巧

    python進階從青銅到王者一定會用上的Python技巧

    這篇文章主要介紹了python進階從青銅到王者一定會用上的Python技巧,本文通過幾個Python的小案例,讓大家體會其中蘊含的技巧一起來圍觀吧
    2021-09-09

最新評論