首页 > 编程 > Python > 正文

Python实现读取文件最后n行的方法

2020-02-23 04:22:42
字体:
来源:转载
供稿:网友

本文实例讲述了Python实现读取文件最后n行的方法。分享给大家供大家参考,具体如下:

# -*- coding:utf8-*-import osimport timeimport datetimeimport mathimport stringdef get_last_line(inputfile) : filesize = os.path.getsize(inputfile) blocksize = 1024 dat_file = open(inputfile, 'r') last_line = "" lines = dat_file.readlines() count = len(lines) if count>60:   num=60 else:   num=count i=1; lastre = [] for i in range(1,(num+1)):   if lines :     n = -i     last_line = lines[n].strip()     #print "last line : ", last_line     dat_file.close()     #print i     lastre.append(last_line) return lastre#获取最后一行的结果re = get_last_line('../update/log/rtime/rtime20130805.log')print len(re)for n in re:  strlist = n.split('  ')  if strlist[1] == 'ok' and string.atoi(strlist[2])>1000:     print '数据条数正常'     print 'OK'  else:     print '数据太少,检查发邮件'

以上处理和日志文件格式为

2013-08-05 16:09:30  ok  16732013-08-05 16:10:34  ok  16282013-08-05 16:11:55  ok  712013-08-05 16:13:02  ok  14412013-08-05 16:14:06  ok  16342013-08-05 16:15:10  ok  17172013-08-05 16:16:14  ok  16872013-08-05 16:17:18  ok  16422013-08-05 16:18:27  ok  16552013-08-05 16:19:33  ok  1655

读取最后一行:

#返回文件最后一行函数def get_last_line(inputfile) : filesize = os.path.getsize(inputfile) blocksize = 1024 dat_file = open(inputfile, 'r') last_line = "" if filesize > blocksize :   maxseekpoint = (filesize // blocksize)   dat_file.seek((maxseekpoint-1)*blocksize) elif filesize :   #maxseekpoint = blocksize % filesize   dat_file.seek(0, 0) lines = dat_file.readlines() if lines :   last_line = lines[-1].strip() #print "last line : ", last_line dat_file.close() return last_line

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python URL操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表