python 实时遍历日志文件
open遍历一个大日志文件
使用readlines()还是readline()?
总体上readlines()不慢于python一次次调用readline(),因为前者的循环在C语言层面,而使用readline()的循环是在Python语言层面。
但是readlines()会一次性把全部数据读到内存中,内存占用率会过高,readline()每次只读一行,对于读取大文件,需要做出取舍。
如果不需要使用seek()定位偏移,forlineinopen('file')速度更佳。
使用readlines(),适合量级较小的日志文件
importos
importtime
defcheck():
p=
whileTrue:
f=open("log.txt","r+")
f=open("result.txt","a+")
f.seek(p,)
#readlines()方法
filelist=f.readlines()
iffilelist:
forlineinfilelist:
#对行内容进行操作
f.write(line)
#获取当前位置,为下次while循环做偏移
p=f.tell()
print'nowp',p
f.close()
f.close()
time.sleep()
if__name__=='__main__':
check()
使用readline(),避免内存占用率过大
importos
importtime
defcheck():
p=
whileTrue:
f=open("log.txt","r+")
f=open("result.txt","a+")
f.seek(p,)
#whilereadline()方法
whileTrue:
l=f.readline()
#空行同样为真
ifl:
#对行内容操作
f.write(l)
else:
#获取当前位置,作为偏移值
p=f.tell()
f.close()
f.close()
break
print'nowp',p
time.sleep()
if__name__=='__main__':
check()热门推荐
10 五一公司放假祝福语简短
11 追星女孩的祝福语简短
12 给长辈端午祝福语 简短
13 生日祝福语有诗意简短
14 团圆日祝福语简短
15 中秋商务祝福语简短最新
16 温暖文艺简短祝福语短句
17 男孩上学祝福语简短的
18 入住酒店文案祝福语简短