python 实时遍历日志文件
发布时间:2020-05-28 06:10:26 所属栏目: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()
(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
