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 相关文章推荐
深入理解Javascript中的this关键字
Mar 27 Python
Python学习小技巧之列表项的推导式与过滤操作
May 20 Python
使用Python制作微信跳一跳辅助
Jan 31 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
Python 正则表达式匹配字符串中的http链接方法
Dec 25 Python
django ModelForm修改显示缩略图 imagefield类型的实例
Jul 28 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
Aug 05 Python
python爬虫 批量下载zabbix文档代码实例
Aug 21 Python
Python Django实现layui风格+django分页功能的例子
Aug 29 Python
python常用数据重复项处理方法
Nov 22 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
Python gevent协程切换实现详解
Sep 14 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 stripos()函数及注意事项的分析
2013/06/08 PHP
php中文验证码实现示例分享
2014/01/12 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
2016/04/15 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
JavaScript 学习笔记(十一)
2010/01/19 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
node.js中的fs.rename方法使用说明
2014/12/16 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
pycham查看程序执行的时间方法
2018/11/29 Python
Python实现 版本号对比功能的实例代码
2019/04/18 Python
python实现证件照换底功能
2019/08/20 Python
简单分析python的类变量、实例变量
2019/08/23 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
中科方德软件测试面试题
2016/04/21 面试题
文秘专业大学生求职信
2013/11/10 职场文书
音乐教学案例
2014/01/30 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
志愿者活动总结报告
2014/06/27 职场文书
大学感恩节活动总结
2015/05/05 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL