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 相关文章推荐
python获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
Python标准库urllib2的一些使用细节总结
Mar 16 Python
Python找出9个连续的空闲端口
Feb 01 Python
Django实现自定义404,500页面教程
Mar 26 Python
详解Python实现多进程异步事件驱动引擎
Aug 25 Python
Python数据结构与算法之字典树实现方法示例
Dec 13 Python
python使用Tkinter实现在线音乐播放器
Jan 30 Python
Python GUI编程完整示例
Apr 04 Python
Python数据分析模块pandas用法详解
Sep 04 Python
快速解决jupyter notebook启动需要密码的问题
Apr 21 Python
python为什么要安装到c盘
Jul 20 Python
PO模式在selenium自动化测试框架的优势
Mar 20 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仿盗链代码
2012/06/03 PHP
php实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
Javascript Object.extend
2010/05/18 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
JS实现定时自动关闭DIV层提示框的方法
2015/05/11 Javascript
浅析Ajax语法
2016/12/05 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
opencv 识别微信登录验证滑动块位置
2018/08/07 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
Python定时器实例代码
2017/11/01 Python
Python3 replace()函数使用方法
2018/03/19 Python
python学生信息管理系统(初级版)
2018/10/17 Python
python获取url的返回信息方法
2018/12/17 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
2020/04/26 Python
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
2013/08/04 面试题
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
伊琍体标语
2014/06/25 职场文书
委托书怎样写
2014/08/30 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
三方协议书
2015/01/27 职场文书
国际贸易实训总结
2015/08/03 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书