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求pi的方法
Oct 08 Python
Python编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
Python判断值是否在list或set中的性能对比分析
Apr 16 Python
Python实现的多线程http压力测试代码
Feb 08 Python
Python2/3中urllib库的一些常见用法
Dec 19 Python
python中virtualenvwrapper安装与使用
May 20 Python
选择python进行数据分析的理由和优势
Jun 25 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
Jan 25 Python
Python中flatten( ),matrix.A用法说明
Jul 05 Python
Python获取指定网段正在使用的IP
Dec 14 Python
教你用python实现一个无界面的小型图书管理系统
May 21 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 URL跳转代码 减少外链
2011/06/25 PHP
PHP获取windows登录用户名的方法
2014/06/24 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
PHP创建XML接口示例
2019/07/04 PHP
PHP判断一个变量是否为整数、正整数的方法示例
2019/09/11 PHP
深入理解javascript中return的作用
2013/12/30 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
angular2中使用第三方js库的实例
2018/02/26 Javascript
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
详解vue中$nextTick和$forceUpdate的用法
2019/12/11 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
Python实现发送email的几种常用方法
2014/08/18 Python
python实现linux下使用xcopy的方法
2015/06/28 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
TensorFlow实现创建分类器
2018/02/06 Python
python类中super() 的使用解析
2019/12/19 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
python中round函数如何使用
2020/06/19 Python
学习标兵获奖感言
2014/02/20 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
2014法院干警廉洁警示教育思想汇报
2014/09/13 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
2016年校园植树节广播稿
2015/12/17 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis