Python 找出日誌檔案中topK的ip

2021-09-21 07:25:54 字數 720 閱讀 9286

最近面試遇到好幾次的乙個問題,查詢日誌檔案中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...