python類初始化導入庫_Python中optparser庫用法實例詳解

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

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

簡介

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

引入

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

from optparser import OptionParser

初始化

相對而言,初始化需要我們多注意一點點了。

因為我們有兩種不同的方式來初始化一個parser。

帶有Usage選項:

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

>>> from optparse import OptionParser

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

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

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

>>> parser.print_help()

Usage: myprog[ -f ][-s ] 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")

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

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

>>> 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,它會以哪個為準呢,答案是以最后出現的為準

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

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

>>> options .verbose

True

非核心

這里主要是講解一下關于default參數的作用,其實就是給dest的默認值。

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

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

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

>>> options.verbose

'defaultvalue'

完整的demo

from optparse import OptionParser

usage = "myprog[ -f ][-s ] 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 ][-s ] arg1[,arg2..]

Options:

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

-f FILENAME, --file=FILENAME

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

總結

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370327.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370327.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370327.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL--Chapter8--Working with Triggers and Transactions

Objectives:1.Implement triggers 2.Implement transactions 轉載于:https://www.cnblogs.com/Catherinezhilin/p/7979644.html

Canvas制作的下雨動畫

簡介 在codepen上看到一個Canvas做的下雨效果動畫,感覺蠻有意思的。就研究了下,這里來分享下,實現技巧。效果可以見下面的鏈接。 霓虹雨: http://codepen.io/natewiley/full/NNgqVJ/ 效果截圖: Canvas動畫基礎 大家都知道&…

在Eclipse中有效使用JUnit

最近,我被卷入了討論1和一些受感染的同伴2,他們關于我們如何在Eclipse IDE中使用JUnit 。 令人驚訝的是,對話帶來了并非所有人都知道的一些“技巧”。 這使我有了寫這篇文章的想法,總結了我們的演講。 誰知道–也許有人也有新事物…

jquery文件上傳控件 Uploadify

基于jquery的文件上傳控件,支持ajax無刷新上傳,多個文件同時上傳,上傳進行進度顯示,刪除已上傳文件。 要求使用jquery1.4或以上版本,flash player 9.0.24以上。 有兩個版本,一個用flash,一個是html5。html5…

imagick php 縮放,php使用imagick模塊實現圖片縮放、裁剪、壓縮示例

PHP 使用Imagick模塊 縮放,裁剪,壓縮圖片 包括gif圖片縮放 裁剪代碼如下:/*** 圖片裁剪* 裁剪規則:* 1. 高度為空或為零 按寬度縮放 高度自適應* 2. 寬度為空或為零 按高度縮放 寬度自適應* 3. 寬度,高度到不為空或為…

php實現第三方郵箱登錄_PHP實現用戶異地登錄提醒功能的方法

有時候你的網站賬號被盜或你在別處登錄操作后臺時,右下角會彈出提示信息,提醒你的賬號異地登錄,或者會被強制下線。對于這種安全性要求比較高的web網站,很多后臺管理都會做這種功能提醒。甄別自己的賬號是否被盜或者是否有另一個人…

課時47.datalist標簽(了解)

1.datalist標簽 作用&#xff1a;給輸入框綁定待選項 2.datalist格式&#xff1a; <datalist> <option>待選項內容</option> </datalist> 3.如何給輸入框綁定待選列表&#xff1f; 搞一個輸入框搞一個datalist列表給datalist列表標簽添加一個id給…

pandas.read_csv參數詳解

讀取CSV&#xff08;逗號分割&#xff09;文件到DataFrame也支持文件的部分導入和選擇迭代更多幫助參見&#xff1a;http://pandas.pydata.org/pandas-docs/stable/io.html參數&#xff1a;filepath_or_buffer : str&#xff0c;pathlib。str, pathlib.Path, py._path.local.Lo…

Gradle – Maven的觀點

正如我博客的讀者所知道的&#xff0c; 我有點像Maven迷 。 我從2007年8月左右開始使用Maven&#xff0c;從沒有回過頭。 但是&#xff0c;就像其他所有情況一樣&#xff0c;“變化是唯一不變的”。 現在這個領域還有其他參與者&#xff0c;Gradle看起來是最有前途的。 我決定試…

postgis安裝_從零開始,構建電子地圖網站:0_2_數據處理postgis

軟件安裝完&#xff0c;開始數據處理。從China Historical GIS下載一份數據。一、數據下載數據來源&#xff1a;China Historical GIS&#xff1a;https://sites.fas.harvard.edu/~chgis/data/chgis/v6/先下載一份時間序列數據&#xff1a;Download CHGIS V6 TIME SERIES Datah…

sar圖像去噪matlab,一種基于總曲率的SAR圖像變分去噪方法與流程

本發明屬于數字圖像處理技術領域&#xff0c;具體涉及一種基于總曲率的SAR圖像變分去噪方法。背景技術&#xff1a;&#xff1a;相干斑噪聲是合成孔徑雷達(Synthetic Aperture Radar&#xff0c;簡稱SAR)圖像的重要特征&#xff0c;嚴重影響SAR圖像的可解譯性。相干斑噪聲通常作…

Linux下用netstat查看網絡狀態、端口狀態

在linux一般使用netstat 來查看系統端口使用情況步。 netstat命令是一個監控TCP/IP網絡的非常有用的工具&#xff0c;它可以顯示路由表、實際的網絡連接以及每一個網絡接口設備的 netstat命令的功能是顯示網絡連接、路由表和網絡接口信息&#xff0c;可以讓用戶得知目…

課時2.瀏覽器和服務器(了解)

1.什么是瀏覽器&#xff1f; 瀏覽器就是由安裝在我們電腦上的一款軟件&#xff0c;QQ&#xff0c;百度影音等一樣&#xff0c;都是安裝在電腦上的一款軟件 那這些軟件之間由什么區別呢&#xff1f; 它們的區別就是它們的功能不太一樣&#xff0c;QQ是用來聊天的&#xff0c;…

微信自動回復

http://itchat.readthedocs.io/zh/latest/tutorial/tutorial0/。 這個是學習網址&#xff0c;到時候自己學一下。做個案例試試轉載于:https://www.cnblogs.com/lilinzhiyu/p/7985864.html

python 定義變量_用python解決動態的定義變量名(并給其賦值方法:大數據處理)...

前言&#xff1a;今天為大家帶來的內容是&#xff1a;用python解決動態的定義變量名(并給其賦值方法&#xff1a;大數據處理)具有很好的參考價值&#xff0c;希望對大家有所幫助。喜歡本文內容的記得點贊轉發收藏不迷路哦&#xff01;&#xff01;&#xff01;最近消費kafka數據…

appcan php圖片上傳,appcan文件上傳php,asp通用

首先說appcan內部實現了file標簽&#xff0c;我們就不用糾結這個問題了&#xff0c;還提供了上傳百分比哦&#xff0c;然后下面的方法按從上到下依次看&#xff0c;很簡單。上傳php&#xff0c;asp頁面很簡單 &#xff0c;接收‘file_data’這個文件信息就可以了&#xff0c;如…

javascript 動態修改css樣式

方法一&#xff1a;改變外聯css文件&#xff0c;這里不講這個。 方法二&#xff1a;通過改變claaName來改變樣式&#xff0c;語法&#xff1a; obj.className "style2";//或者obj.setAttribute("class", "style2"); 方法三&#xff1a;使用obj…

POJ 3225 Help with Intervals(線段樹)

POJ 3225 Help with Intervals 題目鏈接 集合數字有的為1&#xff0c;沒有為0&#xff0c;那么幾種操作相應就是置為0或置為1或者翻轉&#xff0c;這個隨便推推就能夠了&#xff0c;然后開閉區間的處理方式就是把區間擴大成兩倍&#xff0c;偶數存點&#xff0c;奇數存線段就可…

在Spring中嵌入HSQLDB服務器實例

我一直在愉快地使用XAMPP進行開發&#xff0c;直到不得不將其托管在可通過Internet訪問的某個地方&#xff0c;供客戶端進行測試和使用。 我有一個僅具有384 RAM的VPS&#xff0c;并且需要快速找到一種方法&#xff0c;因此決定將XAMPP安裝到VPS中。 由于內存不足&#xff0c;因…

python與材料計算公式_《從問題到程序:用Python學編程和計算》——2.11 補充材料-阿里云開發者社區...

本節書摘來自華章計算機《從問題到程序&#xff1a;用Python學編程和計算》一書中的第2章&#xff0c;第2.11節&#xff0c;作者 裘宗燕&#xff0c;更多章節內容可以訪問云棲社區“華章計算機”公眾號查看。2.11 補充材料本書各章的主要內容將圍繞著怎樣通過編程解決計算問題…