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中让MySQL查询结果返回字典类型的方法
Aug 22 Python
Python中自定义函数的教程
Apr 27 Python
python发送HTTP请求的方法小结
Jul 08 Python
python实现在图片上画特定大小角度矩形框
Oct 24 Python
从DataFrame中提取出Series或DataFrame对象的方法
Nov 10 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
详解配置Django的Celery异步之路踩坑
Nov 25 Python
神经网络相关之基础概念的讲解
Dec 29 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
Nov 21 Python
Python新手学习装饰器
Jun 04 Python
python使用建议与技巧分享(二)
Aug 17 Python
python中numpy.empty()函数实例讲解
Feb 05 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中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
PHP中串行化用法示例
2016/11/16 PHP
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
分享20款好玩的jQuery游戏
2011/04/17 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
使用jQuery给input标签设置默认值
2016/06/20 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
2017/12/27 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
全面了解python中的类,对象,方法,属性
2016/09/11 Python
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
详解Python IO编程
2020/07/24 Python
学python爬虫能做什么
2020/07/29 Python
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
大学生专科毕业生自我评价
2013/11/17 职场文书
法定代表人身份证明书
2014/09/10 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
银行授权委托书样本
2014/10/13 职场文书
2014年局领导班子自身建设情况汇报
2014/11/21 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python
python脚本框架webpy模板控制结构
2021/11/20 Python
Redis基本数据类型List常用操作命令
2022/06/01 Redis