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序列之list和tuple常用方法以及注意事项
Jan 09 Python
pycharm安装图文教程
May 02 Python
python3 读写文件换行符的方法
Apr 09 Python
Python简单爬虫导出CSV文件的实例讲解
Jul 06 Python
对python cv2批量灰度图片并保存的实例讲解
Nov 09 Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 Python
python使用正则筛选信用卡
Jan 27 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
python global和nonlocal用法解析
Feb 03 Python
学会python自动收发邮件 代替你问候女友
May 20 Python
详解查看Python解释器路径的两种方式
Oct 15 Python
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
Apr 27 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 cron中的批处理
2008/09/16 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
PHP设计模式之原型设计模式原理与用法分析
2018/04/25 PHP
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
Python 多进程、多线程效率对比
2020/11/19 Python
matplotlib bar()实现百分比堆积柱状图
2021/02/24 Python
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
大学生职业规划前言模板
2013/12/27 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
SQL Server Agent 服务无法启动
2022/04/20 SQL Server