您的位置:首页 > 编程语言 > Python开发

如何用python最快的获取大文件的最后几行

2014-04-12 22:23 645 查看
        工作中经常会遇到处理日志文件的问题:为了得到日志的最新状态,我们需要获取日志文件的最后部分行来做判断。那么,这种情况下我们应该怎么做呢?

         1)常规方法:从前往后依次读取

              步骤:open打开日志文件。

                          读取文件,获取文件的总行数。

                          遍历所有行,提取指定行的数据。

              优点:简单,方便

              缺点:当文件大了以后时间太慢,无法忍受

         2)推荐方法:

               步骤:open打开日志文件。

                          移动文件读取指针到文件末尾。

                          从后往前移动指针直到合适的位置。

                          读取文件,提取指定行的数据。

              优点:时间相对固定,适合处理大文件

         示例:

logFile = open('logFilePath.log', 'r')
logFile.seek(0,2)
logFile.seek(-1000000,2)
rowCount = 0
for row in logFile.readlines()[1:]:
pass


 seek():移动文件读取指针到指定位置

tell():返回文件读取指针的位置

seek()的三种模式:

    (1)f.seek(p,0)  移动当文件第p个字节处,绝对位置

    (2)f.seek(p,1)  移动到相对于当前位置之后的p个字节

    (3)f.seek(p,2)  移动到相对文章尾之后的p个字节
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: