python getopt模組使用例項解析
這篇文章主要介紹了python getopt模組使用例項解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
官方介紹地址:https://docs.python.org/3.1/library/getopt.html
實用方向:
處理命令列引數的一個方法,簡單好用。
方法:
getopt模組總共有2個函式,分別為:
- getopt.getopt
- getopt.gnu_getopt
簡單使用:
getopt這個函式常用,簡單看一下這個函式的使用:
getopt.getopt(args,shortopts,longopts=[])
看這幾個引數,
args為:指令碼接受的引數,傳入為list型別,此處與sys.argv連並使用
shortopts:短引數。就是參考:python3 test.py -v,這個-v就是需要用到的短引數。
longopts=[]:長引數。就是參考:python3 test.py --v,兩個-的就是需要用到的長引數。
先簡單有一個印象。
那後面需要用到的引數怎麼傳入,怎麼處理呢?
引數處理:
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',[])
列印瞭如上的內容,我們依次看一下
1、我們為什麼要用sys.argv[1:]呢?是因為第0個是函式本身,所以接受除本身之外的所以引數
2、返回的是一個tuple,第一個list我們可以理解是傳入的--h,加到了一個list裡,第二個list則是-h後面加的引數,這裡沒有加,所以為空
下面來實踐一下:
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
由上,又出現了個新東西,shortopts裡面怎麼多了個冒號呢??那個是幹啥的?
其實,從上面的例子也可以簡單看出來,加冒號意思就是-w後面要加引數,不加冒號就不用加引數,longopts也是一樣,冒號用等號代替。
好,這裡都已經有些瞭解了。那麼後面的args,是幹啥的呀。還有opts又是幹啥的呀。
opts 就是分析出的格式資訊。args 為不屬於格式資訊的剩餘的命令列引數。
opts 是一個兩元組的列表。(選項串,附加引數) 。如果沒有則為空。
下面看例子:
我們在最開頭列印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裡面的內容了。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。