python 实时遍历日志文件


Posted in Python onApril 12, 2016

open 遍历一个大日志文件

使用 readlines() 还是 readline() ?

总体上 readlines() 不慢于python 一次次调用 readline(),因为前者的循环在C语言层面,而使用readline() 的循环是在Python语言层面。

但是 readlines() 会一次性把全部数据读到内存中,内存占用率会过高,readline() 每次只读一行,对于读取 大文件, 需要做出取舍。

如果不需要使用 seek() 定位偏移, for line in open('file') 速度更佳。

使用 readlines(),适合量级较小的日志文件

import os
import time
def check():
p = 
while True:
f = open("log.txt", "r+")
f = open("result.txt", "a+")
f.seek(p, )
#readlines()方法
filelist = f.readlines()
if filelist:
for line in filelist:
#对行内容进行操作
f.write(line)
#获取当前位置,为下次while循环做偏移
p = f.tell()
print 'now p ', p
f.close()
f.close()
time.sleep()
if __name__ == '__main__':
check()

使用 readline(),避免内存占用率过大

import os
import time
def check():
p = 
while True:
f = open("log.txt", "r+")
f = open("result.txt", "a+")
f.seek(p, )
#while readline()方法
while True:
l = f.readline()
#空行同样为真
if l:
#对行内容操作
f.write(l)
else:
#获取当前位置,作为偏移值
p = f.tell()
f.close()
f.close()
break
print 'now p', p
time.sleep()
if __name__ == '__main__':
check()
Python 相关文章推荐
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
使用pdb模块调试Python程序实例
Jun 02 Python
Python编程中time模块的一些关键用法解析
Jan 19 Python
Python之Web框架Django项目搭建全过程
May 02 Python
Django权限机制实现代码详解
Feb 05 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
详解Python 协程的详细用法使用和例子
Jun 15 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
Sep 14 Python
linux下python中文乱码解决方案详解
Aug 28 Python
python paramiko远程服务器终端操作过程解析
Dec 14 Python
通过Turtle库在Python中绘制一个鼠年福鼠
Feb 03 Python
Python实现定时监测网站运行状态的示例代码
Sep 30 Python
python字符串连接方法分析
Apr 12 #Python
python去除文件中空格、Tab及回车的方法
Apr 12 #Python
Python脚本实现虾米网签到功能
Apr 12 #Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
Apr 12 #Python
用Python写冒泡排序代码
Apr 12 #Python
详解Python的Django框架中manage命令的使用与扩展
Apr 11 #Python
对Python的Django框架中的项目进行单元测试的方法
Apr 11 #Python
You might like
php 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
javascript引用对象的方法
2007/01/11 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
python如何实现代码检查
2019/06/28 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
python如何写try语句
2020/07/14 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
浅谈Python __init__.py的作用
2020/10/28 Python
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
租房合同协议书
2014/04/09 职场文书
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL