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

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

步骤:open打开日志文件。

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

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

优点:简单,方便

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

2)推荐方法:

步骤:open打开日志文件。

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

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

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

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

示例:

    logFile = open('logFilePath.log', 'r')logFile.seek(0,2)logFile.seek(-1000000,2)rowCount = 0for 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个字节

转载于:https://www.cnblogs.com/chenjianhong/p/4144472.html

如何用python最快的获取大文件的最后几行相关推荐

  1. 如何在Python中便宜地获取大文件的行数?

    我需要在python中获取一个大文件(数十万行)的行数. 内存和时间最有效的方法是什么? 目前,我这样做: def file_len(fname):with open(fname) as f:for ...

  2. 如何用python和pip安装在txt文件中配置好版本的库包

    如何用python和pip安装在txt文件中配置好版本的库包 文章目录: 一.建立库包版本的txt配置文件 二.安装txt配置文件中的库包 有时候你自己用python实现一个项目,然后想把它在gith ...

  3. Python+os+openpyxl 批量获取Excel的文件名和最大行数

    1. 提出需求 这已经不知道是粉丝问我的第几个办公自动化的问题了,并且这些问题都是大家在学习和工作中碰到过的真实问题场景.其实从下图中已经可以很明确的看出别人的需求了,我这里就不用在赘述了,下面直接上 ...

  4. linux清除文件后df还是满的,Linux系统下如何用du和df命令清除大文件?

    Linux系统中如果发现/home目录下剩余空间不足,可以使用du和df命令来对找到大文件,并且对它们进行删除,从而腾出足够的空间.那么如何用du和df命令清除大文件呢? 具体方法: 步骤1. du ...

  5. Python 对os.listdir()获取的文件列表进行 Windows 的按名称方式排序,natsort 库的应用

    Python 对os.listdir()获取的文件列表进行 Windows 的按名称方式排序,natsort 库的应用 1.前言 日前,使用os.listdir()读取一个文件夹下的所有文件和子文件夹 ...

  6. 【linux】使用sed删除大文件中的指定行

    [linux]使用sed删除大文件中的指定行 引言: 最近在清洗数据时遇到一个超大的文件,需要删除其中不符合数据要求的指定行.使用之前写好的python脚本清洗速度太慢,于是检索了许多linux文件处 ...

  7. php怎样加密文件,如何使用php加密大文件并通过命令行解密?

    我正在用 PHP编写一个小脚本来备份我的文件.在我从服务器传输文件之前,我想加密它们. 我在我的脚本的早期版本中通过在我的Linux服务器上使用exec()和OpenSSL来做到这一点.现在我正在寻找 ...

  8. python读取大文件-Python如何读取、拆分大文件

    简述 最近和第三方数据接触较多,数据量也开始陡增,从一开始的1KW行,最大到了1亿行,这让我这个常年处理"小数据'的人有点捉襟见肘.本来数据放在hive中也是可以操作的,但是有时候需求是做一 ...

  9. 怎么用python创建文件-如何用Python创建生成xml文档文件的方法

    用如何用Python完成创建生成xml文档文件的工作. 需要用到的方法:from xml.dom.minidom import Document,想必大家很熟悉这个操作了,接下来就用python 创建 ...

最新文章

  1. Python 列表和迭代器区别
  2. cmd运行java文件_Java基础 前传
  3. 数模国赛要点与注意事项全分享!
  4. .net2.0 orm_Java 8:深入研究速度3.0.1“森林”流ORM
  5. 第 5-7 课:Java 中的各种锁和 CAS + 面试题
  6. RocketMQ的组织架构和基本概念,Dledger高可用集群架构原理
  7. 疫情肆虐之下,阿里巴巴的攻与防!
  8. HDU 2076 夹角有多大(题目已修改,注意读题)
  9. 透过用户思维谈程序员的进阶之路
  10. HTML基金会2----联系,像, 第,对齐
  11. Android之MVC模式
  12. centos如何界面操作mysql_【mysql】centos7下mysql的安装以及基本操作
  13. Unity 插件之 Highlighting 高亮插件
  14. 麻雀搜索算法优化BP神经网络预测以及MATLAB代码实现
  15. Java.生成class文件
  16. html两个部分组成部分组成,html页面由哪几部分组成
  17. 计算机专业是不是天坑专业,工科中的三大“天坑”专业,就业前景不太乐观,入坑需谨慎!...
  18. es6 语法简单使用
  19. R语言 substitute
  20. UV材质图片合并后UV坐标的变换

热门文章

  1. 驱动列举进程输出到应用层
  2. AI and logistics Patent
  3. 如果我们预先得知未来某一刻会因为此刻的决定而失败,那是否还会继续努力?
  4. 笔记-TCPCLIENT
  5. 关于LOH(Large Object Heap)及内存泄漏
  6. day22 Pythonpython 本文json模块
  7. 创建以mybatis为基础的web项目(2)mabitis中的一对一关系项目实战
  8. textmate开发一个blog
  9. Oracle PL/SQL编程之过程
  10. 搭建docker私有仓库