1. 前言

前几天在做日志分析系统,需要处理几十G的文件,我尝试用原来的for line in open(filepath).readlines()处理,但停顿好久也没变化,可见占用不小的内存。在网上搜索了下,找到了两种方法来读取大文件。

2. with读取大文件

with读取是非常Pythonic的方法,示例如下:

with open(filepath) as f:

for line in f:

这个方法是在Stackoverflow上找到,这位高手对with读取的解释是这样的:

The with statement handles opening and closing the file, including if an exception is raised in the inner block. The for line in f treats the file object f as an iterable, which automatically uses buffered IO and memory management so you don't have to worry about large files.

大意就是with负责处理open和close文件,包括抛出内部异常。而for line in f将文件对象f当做迭代对象,将自动处理IO缓冲和内存管理,这样你无需担心大文件的处理了。

3. fileinput处理

用到了Python的fileinput模块,亲测也毫无卡顿,示例代码如下:

import fileinput

for line in fileinput.input(['sum.log']):

print line

4. 总结

以上两种方法都亲测可用,明显第一种更Pythonic,无需import,而且还能处理close和Exception,更推荐使用。

python 读取大文件_Python读取大文件相关推荐

  1. python不同数据的读入_python读写不同编码txt文件_python读写txt文件

    python读写不同编码txt文件_python读写txt文件 以后整理规范 [python] view plaincopy import os import codecs filenames=os. ...

  2. python回到首行_python读取文件首行和最后一行

    python读取文件最后一行两种方式 1)常规方法:从前往后依次读取 步骤:open打开文件. 读取文件,把文件所有行读入内存. 遍历所有行,提取指定行的数据. 优点:简单,方便 缺点:当文件大了以后 ...

  3. python读取手机文件_python 读取 网络 文件

    Python之pandas数据加载.存储 Python之pandas数据加载.存储 0. 输入与输出大致可分为三类: 0.1 读取文本文件和其他更好效的磁盘存储格式 2.2 使用数据库中的数据 0.3 ...

  4. python读视频文件_python读取和保存视频文件

    如何用python实现视频关键帧提取并保存为图片?也许你会觉得对小编多做一点事你会觉得你很爽,可是在小编看来这是不屑的 import cv2vc = cv2.VideoCapture('Test.av ...

  5. python生成表格文件_python 读取excel文件生成sql文件实例详解

    python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以 ...

  6. python print(len(pi_string))_Python如何从文件中读取数据

    从文件中读取数据 1. 读取整个文件 要读取文件,首先来创建一个文件: 然后打开并读取这个文件,再将其内容显示到屏幕上:file_reader.py with open('pi_digits.txt' ...

  7. python读取写入文件_Python读取文件,写入文件,打开文件,删除文件,复制文件

    python读取写入文件 In this tutorial we are going to learn about Python File Operations such as python read ...

  8. python如何创建文件_python中创建文件、读取文件内容

    1.选择文件夹,单击右键,点击New -> Python file 2.命名好之后,如我命的就是创建文件. 3.文件命名好了以后,可以编辑代码 如: nf=open("pi_digit ...

  9. python将数据写入xml文件_python读取/创建XML文件

    Python中定义了很多处理XML的函数,如xml.dom,它会在处理文件之前,将根据xml文件构建的树状数据存在内存.还有xml.sax,它实现了SAX API,这个模块牺牲了便捷性,换取了速度和减 ...

最新文章

  1. 看看大网站到底是如何保障网络安全的
  2. 【POJ】3268 Silver Cow Party (将有向图的边反转)
  3. 基本函数依赖和候选键_5G 通信候选波形的设计和评测解决方案
  4. Linux内核 sysctl.conf 优化设置
  5. 从零开始带你一步一步使用YOLOv3测试自己的数据
  6. bootstrap table入门例子
  7. [C++/CLI编程宝典][5]编译与反汇编
  8. php是fast_cgi模式,cpanel中的php运行方式使用fast-cgi模式的配置方法
  9. 【原】数据库排序规则导致的问题
  10. 六个好用的程序员开发在线工具
  11. 帮助干活,朋友馈赠了购物卡
  12. 计算机桌面图片查看,在CAD看图中如何快速的打开电脑桌面上的图纸进行预览查看...
  13. 锁定和隐藏Excel公式
  14. 华为开启管理员模式_华为root权限怎么开启,详细的步骤以及图文教程
  15. 马尔可夫决策过程和贝尔曼方程
  16. 微信为什么使用 SQLite 保存聊天记录
  17. 用友OA/NC/NCCloud漏洞集合
  18. 如何关闭移动硬盘的自动休眠功能
  19. 必须来GeekPwn的十大理由
  20. HNUCM-2022年秋季学期《算法分析与设计》练习9

热门文章

  1. 二叉搜索树(BFS)总结
  2. 【Python】函数外定义变量并在函数内进行更新
  3. 【随笔】深度学习的数据增强还分在线和离线?
  4. [云炬创业学笔记]第一章创业是什么测试9
  5. *** FATAL ERROR: too many grib files .. 1st=F:\data\预测数据 2nd=- ***
  6. 比较两个二维数组是否相等
  7. FFmpeg中实现对多媒体信息的获取与打印av_dump_format
  8. Java获得随机数字
  9. 在 Windows 上部署 gitblit
  10. 如何告别半途而废——韦东山嵌入式Linux视频学习笔记00