国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中optparse模塊使用淺析

2020-02-23 06:18:10
字體:
供稿:網(wǎng)友

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

使用此模塊前,首先需要導(dǎo)入模塊中的類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ù)的標(biāo)簽,會被識別

當(dāng)選項被定義好后,則可以調(diào)用parse_args()函數(shù)來獲取我們定義的選項和參數(shù)
代碼如下:
(options, args) = parser.parse_args() #parse_args可以有參數(shù),不定義的話使用默認(rèn)的sys.argv[1:]

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

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

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

action參數(shù)告訴optparse該做什么當(dāng)它在命令行中遇到選項時。action有三種存儲方式:store、store_false、store_true。如果不指定action的值,默認(rèn)的是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'

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 西乌珠穆沁旗| 靖州| 汽车| 习水县| 东莞市| 隆德县| 镇坪县| 青州市| 苏尼特右旗| 东港市| 无锡市| 开江县| 安平县| 壶关县| 乌拉特中旗| 平乐县| 安岳县| 苍南县| 洪湖市| 松溪县| 嘉定区| 讷河市| 清水县| 南澳县| 宁武县| 鹤庆县| 天津市| 辉县市| 中卫市| 江达县| 化州市| 湘潭市| 同德县| 天镇县| 柏乡县| 九台市| 明溪县| 新源县| 赣榆县| 松溪县| 桦川县|