Python实现读取文件最后n行的方法
本文实例讲述了Python实现读取文件最后n行的方法。分享给大家供大家参考,具体如下:
#-*-coding:utf8-*-
importos
importtime
importdatetime
importmath
importstring
defget_last_line(inputfile):
filesize=os.path.getsize(inputfile)
blocksize=1024
dat_file=open(inputfile,'r')
last_line=""
lines=dat_file.readlines()
count=len(lines)
ifcount>60:
num=60
else:
num=count
i=1;
lastre=[]
foriinrange(1,(num+1)):
iflines:
n=-i
last_line=lines[n].strip()
#print"lastline:",last_line
dat_file.close()
#printi
lastre.append(last_line)
returnlastre
#获取最后一行的结果
re=get_last_line('../update/log/rtime/rtime20130805.log')
printlen(re)
forninre:
strlist=n.split('')
ifstrlist[1]=='ok'andstring.atoi(strlist[2])>1000:
print'数据条数正常'
print'OK'
else:
print'数据太少,检查发邮件'
以上处理和日志文件格式为
2013-08-0516:09:30ok1673 2013-08-0516:10:34ok1628 2013-08-0516:11:55ok71 2013-08-0516:13:02ok1441 2013-08-0516:14:06ok1634 2013-08-0516:15:10ok1717 2013-08-0516:16:14ok1687 2013-08-0516:17:18ok1642 2013-08-0516:18:27ok1655 2013-08-0516:19:33ok1655
读取最后一行:
#返回文件最后一行函数 defget_last_line(inputfile): filesize=os.path.getsize(inputfile) blocksize=1024 dat_file=open(inputfile,'r') last_line="" iffilesize>blocksize: maxseekpoint=(filesize//blocksize) dat_file.seek((maxseekpoint-1)*blocksize) eliffilesize: #maxseekpoint=blocksize%filesize dat_file.seek(0,0) lines=dat_file.readlines() iflines: last_line=lines[-1].strip() #print"lastline:",last_line dat_file.close() returnlast_line
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《PythonURL操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《PythonSocket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。