python getopt模塊使用實(shí)例解析
這篇文章主要介紹了python getopt模塊使用實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
官方介紹地址: https://docs.python.org/3.1/library/getopt.html
實(shí)用方向:
處理命令行參數(shù)的一個(gè)方法,簡(jiǎn)單好用。
方法:
getopt模塊總共有2個(gè)函數(shù),分別為:
- getopt.getopt
- getopt.gnu_getopt
簡(jiǎn)單使用:
getopt這個(gè)函數(shù)常用,簡(jiǎn)單看一下這個(gè)函數(shù)的使用:
getopt.getopt(args, shortopts, longopts=[])
看這幾個(gè)參數(shù),
args為:腳本接受的參數(shù),傳入為list類型,此處與sys.argv連并使用
shortopts:短參數(shù)。就是參考:python3 test.py -v ,這個(gè)-v就是需要用到的短參數(shù)。
longopts=[]:長(zhǎng)參數(shù)。就是參考:python3 test.py --v,兩個(gè)-的就是需要用到的長(zhǎng)參數(shù)。
先簡(jiǎn)單有一個(gè)印象。
那后面需要用到的參數(shù)怎么傳入,怎么處理呢?
參數(shù)處理:
import sys import getopt opts = getopt.getopt(sys.argv[1:],"-h",["help"]) print(opts)
我們?cè)诿钚信芤幌拢?/p>
GL$python3 111.py --help ([('--help', '')], []) GL$python3 111.py -h ([('-h', '')], [])
打印了如上的內(nèi)容,我們依次看一下
1、我們?yōu)槭裁匆胹ys.argv[1:]呢?是因?yàn)榈?個(gè)是函數(shù)本身,所以接受除本身之外的所以參數(shù)
2、返回的是一個(gè)tuple,第一個(gè)list我們可以理解是傳入的--h,加到了一個(gè)list里,第二個(gè)list則是-h后面加的參數(shù),這里沒有加,所以為空
下面來實(shí)踐一下:
import getopt import sys opts,args = getopt.getopt(sys.argv[1:],'-h-w:-v',['help','version']) for opt_name,opt_value in opts: if opt_name in ('-h','--help'): print(opt_name,"this is help") exit() if opt_name == '-w': print("-w:",opt_value) exit() if opt_name in ('-v','--version'): print('version:0.01') exit()
運(yùn)行起來看看:
GL$python3 111.py -w 123-w: 123GL$python3 111.py -h -h this is help GL$python3 111.py -v version:0.01GL$python3 111.py --help --help this is help
由上,又出現(xiàn)了個(gè)新東西,shortopts里面怎么多了個(gè)冒號(hào)呢??那個(gè)是干啥的?
其實(shí),從上面的例子也可以簡(jiǎn)單看出來,加冒號(hào)意思就是-w后面要加參數(shù),不加冒號(hào)就不用加參數(shù),longopts也是一樣,冒號(hào)用等號(hào)代替。
好,這里都已經(jīng)有些了解了。那么后面的args,是干啥的呀。還有opts又是干啥的呀。
opts 就是分析出的格式信息。args 為不屬于格式信息的剩余的命令行參數(shù)。
opts 是一個(gè)兩元組的列表。(選項(xiàng)串, 附加參數(shù)) 。如果沒有則為空。
下面看例子:
我們?cè)谧铋_頭打印args,也就是加一行 print(args),我就不貼代碼了。
運(yùn)行起來:
GL$python3 111.py --help ssss ['ssss'] --help this is help/GL$python3 111.py -w 123 123 ['123'] -w: 123
多余的未識(shí)別的就成了args里面的內(nèi)容了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python3 循環(huán)讀取excel文件并寫入json操作
這篇文章主要介紹了python3 循環(huán)讀取excel文件并寫入json操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07python3 通過 pybind11 使用Eigen加速代碼的步驟詳解
這篇文章主要介紹了python3 通過 pybind11 使用Eigen加速代碼的步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12python免殺技術(shù)shellcode的加載與執(zhí)行
本文主要介紹了python免殺技術(shù)shellcode的加載與執(zhí)行,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Python中ini配置文件讀寫的實(shí)現(xiàn)
本文主要介紹了Python中ini配置文件讀寫的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02YOLOv5部署到web端詳細(xì)過程(flask+js簡(jiǎn)單易懂)
YOLOv5是一個(gè)目標(biāo)檢測(cè)模型,Flask是一個(gè)Python的Web框架,下面這篇文章主要給大家介紹了關(guān)于YOLOv5部署到web端(flask+js簡(jiǎn)單易懂)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04Anaconda中Python虛擬環(huán)境的創(chuàng)建使用與刪除方法詳解
這篇文章主要為大家介紹了在Anaconda環(huán)境下,創(chuàng)建、使用與刪除Python虛擬環(huán)境的方法,具有一定的借鑒價(jià)值,需要的小伙伴可以跟隨小編一起了解一下2023-08-08