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

321次阅读  |  发布于5年以前

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


    # -*- coding:utf8-*-
    import os
    import time
    import datetime
    import math
    import string
    def 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  1673
    2013-08-05 16:10:34  ok  1628
    2013-08-05 16:11:55  ok  71
    2013-08-05 16:13:02  ok  1441
    2013-08-05 16:14:06  ok  1634
    2013-08-05 16:15:10  ok  1717
    2013-08-05 16:16:14  ok  1687
    2013-08-05 16:17:18  ok  1642
    2013-08-05 16:18:27  ok  1655
    2013-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程序设计有所帮助。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8