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

本文实例讲述了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程序设计有所帮助。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值