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



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值