Python中optparser庫用法執行個體詳解,pythonoptparser

來源:互聯網
上載者:User

Python中optparser庫用法執行個體詳解,pythonoptparser

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

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

簡介

optparse模組主要用來為指令碼傳遞命令參數功能.

引入

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

from optparser import OptionParser

初始化

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

帶有Usage選項:

這樣的好處是可以類比帶有協助的終端使用,如下

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

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

>>> parser.print_help()Usage: myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]Options: -h, --help      show this help message and exit #此兩行根據option自動產生,比較智能額~~ -f FILENAME, --file=FILENAME            no any help #自訂協助資訊

不帶Usage選項:

正常來說可以不用設定參數。

parser = OptionParser()

添加選項

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

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

在OptionParser中要想實現這樣的一個效果,我們只需要藉助如下的一行代碼。

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

核心

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

  • action: 驗證輸入資料類型是否和type 匹配,並將符合要求的這個參數儲存到dest變數中。有以下幾個屬性:

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

2.store_true 標記而已

  • type : 指的是對應於參數,如-f,-n等的接下來的那個參數的資料類型,有string,int,float等等
  • dest : 用於儲存臨時變數,其值可以作為options的屬性進行訪問。儲存的內容就是如-f,-n 等緊挨著的那個參數內容。
  • 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.verboseTrue>>> fakeArgs = ['-q','bye bye']>>> options, args = parser.parse_args(fakeArgs)>>> options.verboseFalse#如果同時寫兩個選項v和q,它會以哪個為準呢,答案是以最後出現的為準>>> fakeArgs = ['-q','bye bye','-v','hello']>>> options, args = parser.parse_args(fakeArgs)>>> options .verboseTrue

非核心

這裡主要是講解一下關於default參數的作用,其實就是給dest的預設值。

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

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

完整的demo

from optparse import OptionParserusage = "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.fileNameprint options.verboseprint optionsprint argsprint 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庫用法詳解的全部內容,希望對大家有所協助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.