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="])參考:1、「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就不可以了,因為匹配兩個值,報錯
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,它...