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


Posted in Python onFebruary 23, 2017

本文实例讲述了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中的Descriptor描述符类
Jun 14 Python
听歌识曲--用python实现一个音乐检索器的功能
Nov 15 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
使用Python对Csv文件操作实例代码
May 12 Python
python机器学习之贝叶斯分类
Mar 26 Python
python保存网页图片到本地的方法
Jul 24 Python
Python语法分析之字符串格式化
Jun 13 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
Jul 23 Python
Python 使用 docopt 解析json参数文件过程讲解
Aug 13 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
May 26 Python
python3 实现mysql数据库连接池的示例代码
Apr 17 Python
Python turtle编写简单的球类小游戏
Mar 31 Python
Python基础教程之tcp socket编程详解及简单实例
Feb 23 #Python
Python命令启动Web服务器实例详解
Feb 23 #Python
Python 基础教程之包和类的用法
Feb 23 #Python
python安装oracle扩展及数据库连接方法
Feb 21 #Python
python安装cx_Oracle模块常见问题与解决方法
Feb 21 #Python
Python实现字符串格式化的方法小结
Feb 20 #Python
python爬虫实现教程转换成 PDF 电子书
Feb 19 #Python
You might like
杏林同学录(七)
2006/10/09 PHP
PHP面向对象的使用教程 简单数据库连接
2006/11/25 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
PHP中的访问修饰符简单比较
2019/02/02 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
js 目录列举函数
2008/11/06 Javascript
asp 取文本框名称代码
2008/12/02 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
js 创建书签小工具之理论
2011/02/25 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
JavaScript省市联动实现代码
2014/02/15 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
2014/04/25 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
以windows service方式运行Python程序的方法
2015/06/03 Python
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
Python3开发环境搭建详细教程
2020/06/18 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
2021/01/10 Python
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
德国W家官网,可直邮中国的母婴商城:Windeln.de
2021/03/03 全球购物
DTD的含义以及作用
2014/01/26 面试题
医院保洁服务方案
2014/06/11 职场文书
毕业生找工作求职信
2014/08/05 职场文书
教师自我剖析材料
2014/09/29 职场文书
2014年财务个人工作总结
2014/12/08 职场文书
语文教师求职信范文
2015/03/20 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
地道战观后感300字
2015/06/04 职场文书
高中政治教学反思
2016/02/23 职场文书
浅谈如何保证Mysql主从一致
2022/03/13 MySQL