最近面試遇到好幾次的乙個問題,查詢日誌檔案中topk的ip或網域名稱或其他字段
#-*-coding:utf-8-*-
#查詢日誌檔案中top5的ip
import os
def top_ip(path):
with open(path) as file:
#定義乙個空字典
ip_dict = {}
#按行讀取檔案
for line in file:
#以空格切分每行資料,ip為第一列,所以取[0]
ip = line.split()[0]
#如果字典中沒有這個ip,就設為1
if ip not in ip_dict:
ip_dict[ip] = 1
#如果有此ip,就把value+1
else:
ip_dict[ip] += 1
#讀取完成後,排序,reverse=true,出現次數多的排在前面
sort_value = [(k, ip_dict[k]) for k in sorted(ip_dict, key=ip_dict.get, reverse=true)]
#獲取前五個,利用切片
return sort_value[0:5]
path = '/users/***/desktop/log.txt'
print top_ip(path)
python 日誌檔案
logging 模組是python中的乙個標準庫模組,有標準庫模組提供日誌記錄api的關鍵好處是所有python模組都可以使用這個日誌記錄功能 日誌級別 日誌級別 level 描述debug 最詳細的日誌資訊,典型場景是問題診斷 info 資訊詳細程度僅次於debug,通常只記錄關鍵節點資訊,用於確...
從apache日誌中找出訪問IP
apache日誌分析可以獲得很多有用的資訊,現在來試試最基本的,獲取最多訪問的前10個ip位址及訪問次數。cat access.log awk sort uniq c sort rn wc l 統計訪問ip的總數 cat access.log awk sort uniq c sort rn 統計訪問...
python讀取日誌檔案
下面是我們的日誌檔案,裡面都是一條條這樣的資料 為了將讀取的日誌檔案存入mysql,我們需要讀取日誌檔案,然後按照指定格式切割出需要的資料 表字段會是time,ip level,messages 這個可以處理大檔案,因此每次只讀取一行 def read log 讀取日誌檔案,進行資料重組,寫入mys...