python处理大日志文件
更新时间:2019年07月23日 09:06:03 作者:暴走的鹏鹏哥哥
这篇文章主要为大家详细介绍了python处理大日志文件的的相关方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了python处理大日志文件的具体代码,供大家参考,具体内容如下
# coding=utf-8
import sys
import time
class Tail():
def __init__(self,file_name,callback=sys.stdout.write):
self.file_name = file_name
self.callback = callback
def follow(self,n=10):
try:
# 打开文件
with open(self.file_name) as f:
self._file = f
self._file.seek(0,2)
# 存储文件的字符长度
self.file_length = self._file.tell()
# 打印最后10行
self.showLastLine(n)
# 持续读文件 打印增量
while True:
line = self._file.readline()
if line:
self.callback(line)
time.sleep(1)
except Exception,e:
print '打开文件失败,囧,看看文件是不是不存在,或者权限有问题'
print e
def showLastLine(self, n):
# 一行大概100个吧 这个数改成1或者1000都行
len_line = 100
# n默认是10,也可以follow的参数传进来
read_len = len_line*n
# 用last_lines存储最后要处理的内容
while True:
# 如果要读取的1000个字符,大于之前存储的文件长度
# 读完文件,直接break
if read_len>self.file_length:
self._file.seek(0)
last_lines = self._file.read().split('\n')[-n:]
break
# 先读1000个 然后判断1000个字符里换行符的数量
self._file.seek(-read_len, 2)
last_words = self._file.read(read_len)
# count是换行符的数量
count = last_words.count('\n')
if count>=n:
# 换行符数量大于10 很好处理,直接读取
last_lines = last_words.split('\n')[-n:]
break
# 换行符不够10个
else:
# break
#不够十行
# 如果一个换行符也没有,那么我们就认为一行大概是100个
if count==0:
len_perline = read_len
# 如果有4个换行符,我们认为每行大概有250个字符
else:
len_perline = read_len/count
# 要读取的长度变为2500,继续重新判断
read_len = len_perline * n
for line in last_lines:
self.callback(line+'\n')
if __name__ == '__main__':
py_tail = Tail('test.txt')
py_tail.follow(20)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
这篇文章主要介绍了Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例,简明入门教程,需要的朋友可以参考下2014-06-06
python用selenium打开浏览器后秒关闭浏览器的解决办法
最近朋友在学Selenium的时候遇到一个问题,当执行完selenium程序后,浏览器会闪退也就是自动关闭,这篇文章主要给大家介绍了关于python用selenium打开浏览器后秒关闭浏览器的解决办法,需要的朋友可以参考下2023-07-07
python网络爬虫selenium打开多窗口与切换页面的实现
本文主要介绍了python网络爬虫selenium打开多窗口与切换页面的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-01-01
Python环境搭建以及Python与PyCharm安装详细图文教程
PyCharm是一种PythonIDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,这篇文章主要给大家介绍了关于Python环境搭建以及Python与PyCharm安装的详细图文教程,需要的朋友可以参考下2024-03-03


最新评论