1. 程式人生 > >python 3.x 分析日誌的模塊(正則匹配)

python 3.x 分析日誌的模塊(正則匹配)

默認值 .get 文件 file 打印 files 日誌 當前 表達式

#導入正則模塊 import re auth="no_shutdown_" ‘‘‘ 分析日誌的模塊,查找日誌中標誌性信息產生的次數 ‘‘‘ #定義你需要查找的對象的正則表達式wordcheck #需要分析的日誌的路徑filesource def checklog(wordcheck,filesource): #定義一個空的字典用來存放查詢的結果 size={} #異常捕獲當文件不存在的時候拋出異常 try: #打開日誌文件 file=open(filesource,"r") #循環讀取日誌文件的每一行 for i in file: #使用re模塊的search功能查找當前行是否能和正則匹配 x=re.search(wordcheck,i) #如果匹配到結果則執行if中的代碼 if x: #取出查詢到的結果 tmp=x.group() #get函數作用是如果字典中取不到key的值則賦一個默認值,也就是每一次查詢到一個新的結果就將這個結果作為key vlaue=0新加到字典中 size[tmp]=size.get(tmp,0) #在字典中將value加1,記錄一次查找 size[tmp]+=1 #關閉文件 file.close() #如果有異常拋出文件異常 except FileExistsError as e: print(e) #沒有異常打印結果 else: return size #測試分析apache訪問日誌中的所有訪問過的ip和次數 rs=checklog("(\d+\.){3}\d+","/var/log/httpd/access_log") print(rs)

結果
因為是測試機上的日誌結果比較少
{‘127.0.0.1‘: 58, ‘192.168.2.254‘: 10}

python 3.x 分析日誌的模塊(正則匹配)