python处理日志文件
python处理日志文件
1 打开日志文件
虽然,日志文件的后缀为.log,但是基本上与文本文件没有区别,按照一般读取文本文件的方式打开即可:
fp =open("e:\\data.log") fp.close()
应用示例:
View Code
2 提取目标信息
日志文件每行字符串由空格分隔,例如对第1个字段(IP、时间等)感兴趣,则使用split()方法对每行字符串进行切片,将第1个子字符串存到列表里,用于下一步处理。
示例代码:
#!/usr/bin/python # -*- coding: UTF-8 -*- txt = "Google#Runoob#Taobao#Facebook" # 第二个参数为 1,返回两个参数列表 x = txt.split("#", 1) print x
输出结果:
[‘Google‘, ‘Runoob#Taobao#Facebook‘]
3 统计分析
在上一步骤中,将感兴趣的目标信息存储到列表中,现使用python统计列表元素出现的次数,参考链接[3]提供了很多实现方法[4],本文使用collections[5]中的most_common()方法。
示例:
from collections import Counter def counter(arr): return Counter(arr).most_common(2) # 返回出现频率最高的两个数 # 结果:[(2, 3), (1, 2)]
4 后记
完整代码(待整理):
# -*- coding: utf-8 -*- """ Created on Thu Apr 11 08:24:02 2019 @author: Green """ #import sys #import time from collections import Counter #import pyExcel import xlwt fp =open("d:\\aa.log") #print len(fp.readlines()) # 3593512 mycount = 0 IPlists = [] for line in fp.readlines(): # control times==================== #mycount += 1 #if mycount > 100: # break #================================== data = line.split(" ") # 依空格切片 IP = data[0] IPlists.append(IP) fp.close() print ‘Length of IPlists:‘, len(IPlists) #IPlists.count() IP_CountResult = Counter(IPlists).most_common() #print IP_CountResult #print ‘[0][0]‘, IP_CountResult[0][0] print ‘Length of IP_CountResult:‘, len(IP_CountResult) f = xlwt.Workbook() # Create workbook sheet1 = f.add_sheet(u‘sheet1‘,cell_overwrite_ok=True) # Create sheet row0 = [u‘IP‘, u‘Count‘] # Create first row for i in range(0,len(row0)): sheet1.write(0, i, row0[i]) for i in range(0,len(IP_CountResult)): for j in range(0,len(IP_CountResult[i])): sheet1.write(i+1, j, IP_CountResult[i][j]) f.save(‘d:\\IP_CountResult.xls‘) # Save the file #===================================== # 测试字符串切片(分割) # txt = "Google Runoob Taobao Facebook" # 第二个参数为 1,返回两个参数列表 # x = txt.split(" ", 1) # print x[0] #===================================== #filename = line[:14] #content = line[14:] #with open("e:\\"+filename+".txt","w") as fp2: # fp2.write(content+"\n")
其他拓展应用,见链接[6-9]
另,研究pandas在数据处理、绘图等方面的应用。
相关推荐
风语者 2020-09-18
BiPerler 2020-05-09
ErixHao 2020-05-08
zyjj 2020-04-25
Carlos 2020-04-21
一路到黑 2020-03-26
lihy0 2020-03-26
Silvercell 2020-03-24
QAnyang 2020-03-14
zbcaicai 2020-03-08
ALLWITHLOVE 2020-02-22
citic 2020-02-22
xcznb 2020-02-11
melonjj 2020-01-02
Lemonlemontree 2013-07-29
xushxbigbear微信 2019-12-23
thlm0 2019-12-08