Python getopt的使用詳解

2021-08-30 13:14:45 字數 1431 閱讀 2329

首先,要說明的是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 可以看出來引數的提取規則 以上幾條規...