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发腾讯微博代码分享
Jan 10 Python
Python生成pdf文件的方法
Aug 04 Python
python操作ie登陆土豆网的方法
May 09 Python
Python实现字符串与数组相互转换功能示例
Sep 22 Python
Python实现的插入排序算法原理与用法实例分析
Nov 22 Python
基于Python中capitalize()与title()的区别详解
Dec 09 Python
基于python中theano库的线性回归
Aug 31 Python
Django操作session 的方法
Mar 09 Python
opencv 图像轮廓的实现示例
Jul 08 Python
Python3爬虫mitmproxy的安装步骤
Jul 29 Python
如何查看python关键字
Jan 17 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 11 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
JavaScript学习笔记(一) js基本语法
2011/10/25 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
20条学习javascript的编程规范的建议
2014/11/28 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
深入浅析JS Function()构造函数
2016/08/22 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
JavaScript判断浏览器和hack滚动条的写法
2017/07/23 Javascript
详解Vuex管理登录状态
2017/11/13 Javascript
echarts学习笔记之箱线图的分析与绘制详解
2017/11/22 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
Next.js实现react服务器端渲染的方法示例
2019/01/06 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
JS实现拼图游戏
2021/01/29 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
医药工作岗位求职信分享
2013/12/31 职场文书
黄河象教学反思
2014/02/10 职场文书
文秘应届生求职信
2014/07/05 职场文书
英文慰问信范文
2015/03/24 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
男人帮观后感
2015/06/18 职场文书
小学生大队委竞选稿
2015/11/20 职场文书