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编写简单网络爬虫抓取视频下载资源
Nov 04 Python
Python进阶之尾递归的用法实例
Jan 31 Python
Python中列表与元组的乘法操作示例
Feb 10 Python
python实现最长公共子序列
May 22 Python
关于Python作用域自学总结
Jun 10 Python
python pyinstaller 加载ui路径方法
Jun 10 Python
PyTorch中permute的用法详解
Dec 30 Python
pytorch中的自定义反向传播,求导实例
Jan 06 Python
Python 绘制可视化折线图
Jul 22 Python
python 提高开发效率的5个小技巧
Oct 19 Python
Python用requests库爬取返回为空的解决办法
Feb 21 Python
Matplotlib animation模块实现动态图
Feb 25 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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
PHP验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
phpstrom使用xdebug配置方法
2013/12/17 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
2017/05/13 jQuery
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
python写的ARP攻击代码实例
2014/06/04 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
python如何操作mysql
2020/08/17 Python
python3字符串输出常见面试题总结
2020/12/01 Python
canvas实现手机的手势解锁的步骤详细
2020/03/16 HTML / CSS
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
儿科护士实习自我鉴定
2013/10/17 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
微笑服务演讲稿
2014/05/13 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
2016年国陪研修感言
2015/11/18 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
sql注入教程之类型以及提交注入
2021/08/02 MySQL
CSS3实现指纹特效代码
2022/03/17 HTML / CSS
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers