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程序设计有所帮助。