如何用python最快的获取大文件的最后几行
工作中经常会遇到处理日志文件的问题:为了得到日志的最新状态,我们需要获取日志文件的最后部分行来做判断。那么,这种情况下我们应该怎么做呢?
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最快的获取大文件的最后几行相关推荐
- 如何在Python中便宜地获取大文件的行数?
我需要在python中获取一个大文件(数十万行)的行数. 内存和时间最有效的方法是什么? 目前,我这样做: def file_len(fname):with open(fname) as f:for ...
- 如何用python和pip安装在txt文件中配置好版本的库包
如何用python和pip安装在txt文件中配置好版本的库包 文章目录: 一.建立库包版本的txt配置文件 二.安装txt配置文件中的库包 有时候你自己用python实现一个项目,然后想把它在gith ...
- Python+os+openpyxl 批量获取Excel的文件名和最大行数
1. 提出需求 这已经不知道是粉丝问我的第几个办公自动化的问题了,并且这些问题都是大家在学习和工作中碰到过的真实问题场景.其实从下图中已经可以很明确的看出别人的需求了,我这里就不用在赘述了,下面直接上 ...
- linux清除文件后df还是满的,Linux系统下如何用du和df命令清除大文件?
Linux系统中如果发现/home目录下剩余空间不足,可以使用du和df命令来对找到大文件,并且对它们进行删除,从而腾出足够的空间.那么如何用du和df命令清除大文件呢? 具体方法: 步骤1. du ...
- Python 对os.listdir()获取的文件列表进行 Windows 的按名称方式排序,natsort 库的应用
Python 对os.listdir()获取的文件列表进行 Windows 的按名称方式排序,natsort 库的应用 1.前言 日前,使用os.listdir()读取一个文件夹下的所有文件和子文件夹 ...
- 【linux】使用sed删除大文件中的指定行
[linux]使用sed删除大文件中的指定行 引言: 最近在清洗数据时遇到一个超大的文件,需要删除其中不符合数据要求的指定行.使用之前写好的python脚本清洗速度太慢,于是检索了许多linux文件处 ...
- php怎样加密文件,如何使用php加密大文件并通过命令行解密?
我正在用 PHP编写一个小脚本来备份我的文件.在我从服务器传输文件之前,我想加密它们. 我在我的脚本的早期版本中通过在我的Linux服务器上使用exec()和OpenSSL来做到这一点.现在我正在寻找 ...
- python读取大文件-Python如何读取、拆分大文件
简述 最近和第三方数据接触较多,数据量也开始陡增,从一开始的1KW行,最大到了1亿行,这让我这个常年处理"小数据'的人有点捉襟见肘.本来数据放在hive中也是可以操作的,但是有时候需求是做一 ...
- 怎么用python创建文件-如何用Python创建生成xml文档文件的方法
用如何用Python完成创建生成xml文档文件的工作. 需要用到的方法:from xml.dom.minidom import Document,想必大家很熟悉这个操作了,接下来就用python 创建 ...
最新文章
- Python 列表和迭代器区别
- cmd运行java文件_Java基础 前传
- 数模国赛要点与注意事项全分享!
- .net2.0 orm_Java 8:深入研究速度3.0.1“森林”流ORM
- 第 5-7 课:Java 中的各种锁和 CAS + 面试题
- RocketMQ的组织架构和基本概念,Dledger高可用集群架构原理
- 疫情肆虐之下,阿里巴巴的攻与防!
- HDU 2076 夹角有多大(题目已修改,注意读题)
- 透过用户思维谈程序员的进阶之路
- HTML基金会2----联系,像, 第,对齐
- Android之MVC模式
- centos如何界面操作mysql_【mysql】centos7下mysql的安装以及基本操作
- Unity 插件之 Highlighting 高亮插件
- 麻雀搜索算法优化BP神经网络预测以及MATLAB代码实现
- Java.生成class文件
- html两个部分组成部分组成,html页面由哪几部分组成
- 计算机专业是不是天坑专业,工科中的三大“天坑”专业,就业前景不太乐观,入坑需谨慎!...
- es6 语法简单使用
- R语言 substitute
- UV材质图片合并后UV坐标的变换