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机器学习之神经网络实现
Oct 13 Python
pandas.dataframe按行索引表达式选取方法
Oct 30 Python
Ubuntu下Python2与Python3的共存问题
Oct 31 Python
在python中只选取列表中某一纵列的方法
Nov 28 Python
python paramiko利用sftp上传目录到远程的实例
Jan 03 Python
django如何通过类视图使用装饰器
Jul 24 Python
python实现邮件发送功能
Aug 10 Python
Python Web框架之Django框架文件上传功能详解
Aug 16 Python
对python pandas中 inplace 参数的理解
Jun 27 Python
python 星号(*)的多种用途
Sep 21 Python
用python-webdriver实现自动填表的示例代码
Jan 13 Python
python urllib库的使用详解
Apr 13 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
在PHP3中实现SESSION的功能(三)
2006/10/09 PHP
php绘制一个矩形的方法
2015/01/24 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
jQuery中:file选择器用法实例
2015/01/04 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
复制粘贴功能的Python程序
2008/04/04 Python
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
Python中字典的setdefault()方法教程
2017/02/07 Python
使用python实现tcp自动重连
2017/07/02 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
python线程中的同步问题及解决方法
2019/08/29 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
两年的个人工作自我评价
2014/01/10 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
人与自然的观后感
2015/06/18 职场文书
预备党员入党感言
2015/08/01 职场文书
学生病假条怎么写
2015/08/17 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书