首页 > 编程语言 > 详细

python 3.x 分析日志的模块(正则匹配)

时间:2018-02-09 17:06:45      阅读:259      评论:0      收藏:0      [点我收藏+]
#导入正则模块 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 分析日志的模块(正则匹配)

原文:http://blog.51cto.com/13466287/2070718

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!