python中 getopt 模塊,是專門用來處理命令行參數的
getop標准格式:
函數getopt(args, shortopts, longopts = [])
shortopts 是短參數 類似於這樣:python test.py -h # 輸出幫助信息
longopts 是長參數 類似於這樣:python test.py --help # 輸出幫助信息
args指的是當前腳本接收的參數,它是一個列表,可以通過sys.argv獲得,在Python里的命令行參數是存儲在sys.argv里,argv是一個列表,第一個元素是程序名稱。
示例:
#test.py # -*- coding:utf-8 -*- import sys if __name__ == '__main__': for item in sys.argv: print i
在命令行運行./test.py 1 2 3,結果如下:
test.py 1 2 3
下面寫一個getop常用格式示例:
代碼:
#test.py
import getopt import sys try: options,args = getopt.getopt(sys.argv[1:],"hp:i:",["help","ip=","port="]) except getopt.GetoptError: sys.exit() print ("options:",options) print("args:",args) for name,value in options: if name in ("-h","--help"): print ("help:正確的使用方法是.......") if name in ("-i","--ip"): print ('ip 是:',value) if name in ("-p","--port"): print ('port 端口是:',value)
命令行中輸入:
python test.py -h --ip=192.168.0.1 -p 80 a1 a2
運行結果為:
options: [('-h', ''), ('--ip', '192.168.0.1'), ('-p', '80')]
args: ['a1', 'a2']
help:正確的使用方法是.......
ip 是: 192.168.0.1
port 端口是: 80
解析:
sys.argv[1:] 過濾掉第一個參數(它是執行腳本的名字,不應算作參數的一部分)。
“hp:i:” 短格式, h 后面沒有冒號:表示后面不帶參數,p:和 i:后面有冒號表示后面需要參數
["help","ip=","port="] 長格式, help后面沒有等號=,表示后面不帶參數,ip、port后面有=,表示后面需要參數
options 是個包含元組的列表,每個元組是分析出來的格式信息
args 是個列表,包含那些沒有‘-’或‘--’的參數
注意:定義命令行參數時,要先定義帶'-'選項的參數,再定義沒有‘-’的參數
