首先,要說明的是python中的getopt模組是專門用來處理命令列引數的。
對於一般的命令列引數處理,只需要簡單使用sys.argv就可以實現,舉例說明,建立乙個argvtest.py檔案內容如下:
#argvtest.py
import sys
print(sys.argv)
用命令列的方式執行該檔案python argvtest.py a b c,發現得到的結果是[』argvtest.py』,』a』,』b』,』c』],它是乙個list。但是當命令列引數變得複雜,即有短選項(-a)和長選項(--b),並且選項後接引數的時候,就需要用到getopt模組。
getopt模組中的函式getopt(args, shortopts, longopts = )。因為第乙個引數是python檔案本身,所以引數args一般是sys.argv[1:],shortopts是短選項即只有乙個字母,longopts是長選項。
下面舉個例子說明:c後面不帶:表示使用短選項-c時後面不接引數,help後面不接=表示使用長選項--help時後面不接引數,反之短選項a、b,長選項ip則需要後接引數。options是乙個由tuple組成的list,用於接收有選項的引數,args是乙個list,用來接收沒有』-』和』--』的引數。
具體的使用方式如下,建立乙個getopttest.py檔案內容如下:
#getopttest.py
import sys
import getopt
options,args = getopt.getopt(sys.argv[1:],」a:b:c」,[」help」,」ip=」]))
print(options)
print(args)
在命令列輸入python getopttest.py -a 1 -c --help --i 3 abc時,得到的結果是
[('-a','1'),('-c',''),('--help',''),('--ip','3')]
['abc']
可以看到options對應的是乙個含選項的tuple組成的list,args就是不含長短選項的所有引數組成的list。
特別注意:引數是嚴格區分大小寫的。在使用長選項時,可以只使用首字母,忽略後面的字元。
如果出現未在getopt函式中定義的短選項或者長選項時,執行程式會出現exception,如果需要對exception進行處理,可以做如下處理:
try:
options,args = getopt.getopt(sys.argv[1:],」a:b:c」,[」help」,」ip=」]))
……except getopt.getopterror:
#handle getopt error
pass
sys.exit(1)
python getopt模組的使用
python 檔案名字 test getopt.py python 檔案執行引數 python test getopt.py p 8888 ip 127.0.0.1 test getopt.py usr bin env python import getopt import sys def main...
python getopt 獲取命令列引數
python 中 getopt 模組,該模組是專門用來處理命令列引數的函式 getopt args,shortopts,longopts args一般是sys.argv 1 shortopts 短格式 longopts 長格式 命令列中輸入 python test.py i 127.0.0.1 p ...
python getopt 命令列引數解析
新建乙個argtest.py檔案,輸入以下 import sys print sys.argv 隨後在命令提示符中執行python argtest.py a b c 1 a b 1,2 a b 會輸出 argtest.py a b c 1 a b 1,2 a b 可以看出來引數的提取規則 以上幾條規...