您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python 实时遍历日志文件

5b51 2022/1/14 8:19:26 python 字数 2771 阅读 399 来源 www.jb51.cc/python

open遍历一个大日志文件 使用readlines()还是readline()? 总体上readlines()不慢于python一次次调用readline(),因为前者的循环在C语言层面,而使用readline()的循环是在Python语言层面。

概述

open 遍历一个大日志文件

使用 readlines() 还是 readline() ?

总体上 readlines() 不慢于python 一次次调用 readline(),因为前者的循环在C语言层面,而使用readline() 的循环是在Python语言层面。

但是 readlines() 会一次性把全部数据读到内存中,内存占用率会过高,readline() 每次只读一行,对于读取 大文件, 需要做出取舍。

如果不需要使用 seek() 定位偏移, for line in open('file') 速度更佳。

使用 readlines(),适合量级较小的日志文件

import os
import time
def check():
p = 
while True:
f = open("log.txt","r+")
f = open("result.txt","a+")
f.seek(p,)
#readlines()方法
filelist = f.readlines()
if filelist:
for line in filelist:
#对行内容进行操作
f.write(line)
#获取当前位置,为下次while循环做偏移
p = f.tell()
print 'Now p ',p
f.close()
f.close()
time.sleep()
if __name__ == '__main__':
check() 

使用 readline(),避免内存占用率过大

import os
import time
def check():
p = 
while True:
f = open("log.txt",)
#while readline()方法
while True:
l = f.readline()
#空行同样为真
if l:
#对行内容操作
f.write(l)
else:
#获取当前位置,作为偏移值
p = f.tell()
f.close()
f.close()
break
print 'Now p',p
time.sleep()
if __name__ == '__main__':
check()

总结

以上是编程之家为你收集整理的python 实时遍历日志文件全部内容,希望文章能够帮你解决python 实时遍历日志文件所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶