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编程中运用闭包时所需要注意的一些地方
May 02 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
Aug 25 Python
Python中的CSV文件使用"with"语句的方式详解
Oct 16 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
Apr 16 Python
Python格式化字符串f-string概览(小结)
Jun 18 Python
对python中GUI,Label和Button的实例详解
Jun 27 Python
python pyinstaller打包exe报错的解决方法
Nov 02 Python
Python类的动态绑定实现原理
Mar 21 Python
python实现学生成绩测评系统
Jun 22 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 Python
详解Django中views数据查询使用locals()函数进行优化
Aug 24 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
PHP删除数组中的特定元素的代码
2012/06/28 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
destoon二次开发常用数据库操作
2014/06/21 PHP
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
jQuery判断复选框是否勾选的原理及示例
2014/05/21 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
Python File readlines() 使用方法
2018/03/19 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
python的concat等多种用法详解
2018/11/28 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
django model object序列化实例
2020/03/13 Python
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
小学清明节活动方案
2014/03/08 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
公证书格式
2015/01/23 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
详解JAVA中的OPTIONAL
2021/06/14 Java/Android
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python