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标准日志模块logging的使用方法
Nov 01 Python
简介Python的collections模块中defaultdict类型的用法
Jul 07 Python
python获取当前用户的主目录路径方法(推荐)
Jan 12 Python
使用python生成目录树
Mar 29 Python
Python实现基于POS算法的区块链
Aug 07 Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 Python
详解Python并发编程之创建多线程的几种方法
Aug 23 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
Dec 19 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
Jun 02 Python
Python dict的常用方法示例代码
Jun 23 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
Dec 10 Python
Pytorch 统计模型参数量的操作 param.numel()
May 13 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和XSS跨站攻击的防范
2007/04/17 PHP
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
php多文件上传实现代码
2014/02/20 PHP
php无限遍历目录示例
2014/02/21 PHP
php while循环控制的简单实例
2016/05/30 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
2021/03/09 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
jqPlot 图表中文API使用文档及源码和在线示例
2012/02/07 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
移动节点的jquery代码
2014/01/13 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
JS闭包的几种常见形式实例详解
2017/09/16 Javascript
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
2019/04/11 Javascript
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
mac安装pytorch及系统的numpy更新方法
2018/07/26 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
python文字转语音实现过程解析
2019/11/12 Python
python手写均值滤波
2020/02/19 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
电影T恤、80年代T恤和80年代服装:TV Store Online
2020/01/05 全球购物
一个C/C++编程面试题
2013/11/10 面试题
经典商业广告词
2014/03/13 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
python之基数排序的实现
2021/07/26 Python
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL
TS 类型兼容教程示例详解
2022/09/23 Javascript