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