python函式getopt用法

2021-09-08 13:16:51 字數 1242 閱讀 4211

python內建模組,用來處理命令列引數

格式:getopt(args, shortopts, longopts = )

引數args一般是sys.ar**[1:]

sys.ar**[0]表示執行檔案本身

shortopts 短格式 (-)

longopts 長格式(--)

命令列中輸入:

python test.py -i 127.0.0.1 -p 80 55 66

python test.py --ip=127.0.0.1 --port=80 55 66

下面的**:

try:

options,args = getopt.getopt(sys.ar**[1:],"hp:i:",["help","ip=","port="])

except getopt.getopterror:

sys.exit()

for name,value in options:

if name in ("-h","--help"):

usage()

if name in ("-i","--ip"):

print 'ip is----',value

if name in ("-p","--port")

print 'port is----',value
options,args = getopt.getopt(sys.ar**[1:],"hp:i:",["help","ip=","port="])

「hp:i:」

短格式: h後面沒有冒號表示後面不帶引數,p:和 i:後面有冒號表示後面需要引數

["help","ip=","port="]

長格式:help後面沒有等號,表示後面不帶引數,其他三個有=,表示後面需要引數

返回值 options 是個包含元祖tuple的列表,每個元祖是分析出來的格式資訊,比如 [('-i','127.0.0.1'),('-p','80')] ;

args 是個列表,包含那些沒有『-』或『--』的引數,比如:['55','66']

注意:定義命令列引數時,要先定義帶'-'選項的引數,再定義沒有『-』的引數

長格式的引數支援字首匹配,但是匹配結果必須是唯一的,例如['foo', 'frob'],引數--fo將會匹配foo,但是使用--f就不可以了,因為匹配兩個值,報錯

參考:1、

2、

用getopt處理main函式的引數

在c語言中,main函式的宣告如下 int main int argc,char argv argc是指程式引數的個數,包括程式名本身,如果程式不帶引數,argc為1 argv的每個陣列元素存放乙個程式引數,程式名存放在argv 0 例如 ls l 此時,argc為2,argv 0 是ls,argv...

Python中getopt 函式的使用

在執行程式時,可能需要根據不同的條件,輸入不同的命令列選項來實現不同的功能。目前有短選項和長選項兩種格式。短選項格式為 加上單個字母選項 長選項為 加上乙個單詞。長格式是在linux下引入的。許多linux程式都支援這兩種格式。在python中提供了getopt模組很好的實現了對這兩種用法的支援,而...

getopt函式分析

函式getopt主要用於拆分命令列引數,用這個函式就不自己寫命令列引數解析程式了,以下 摘自tcpdump原始碼,對這個函式比較感興趣,故對此進行分析注釋,因水平實在不敢恭維,不足之處希望能一起 函式getopt 有三個引數,nargc,nargv就是命令列傳過來的argc和argv字串ostr,它...