设为首页收藏本站
查看: 69|回复: 0

[PHP] Python读取文件后n行的代码示例

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34273
主题
17031
UID
1347
M币
67
贡献
17175

  • 发表于 2013-8-5 16:09:30 | 显示全部楼层 |阅读模式
    这篇文章主要介绍了Python实现读取文件最后n行的方法,涉及Python针对文件的读取、遍历与运算相关操作技巧,需要的朋友可以参考下
    # -*- 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
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表