Python 环境下文件的读取问题,请参见拙文 Python 基础 —— 文件

这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件。

1. read() 接口的问题

f = open(filename, 'rb')
f.read()

我们来读取 1 个 nginx 的日至文件,规模为 3Gb 大小。read() 方法执行的操作,是一次性全部读入内存,显然会造成:

MemoryError
...

也即会发生内存溢出。

2. 解决方案:转换接口

  • (1)readlines() :读取全部的行,构成一个 list,实践表明还是会造成内存的问题;

    for line in f.reanlines():...
  • (2)readline():每次读取一行,

    while True:line = f.readline()if not line:break
  • (3)read(1024):重载,指定每次读取的长度

    while True:block = f.read(1024)if not block:break

3. 真正 Pythonic 的方法

真正 Pythonci 的方法,使用 with 结构:

with open(filename, 'rb') as f:for line in f:<do something with the line>

对可迭代对象 f,进行迭代遍历:for line in f,会自动地使用缓冲IO(buffered IO)以及内存管理,而不必担心任何大文件的问题。

There should be one – and preferably only one – obvious way to do it.

Reference

  1. How to read large file, line by line in python

强悍的 Python —— 读取大文件相关推荐

  1. python读取大文件-强悍的Python读取大文件的解决方案

    Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...

  2. python读取大文件性能_强悍的Python读取大文件的解决方案

    Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...

  3. python中0xff_强悍的Python读取大文件的解决方案

    这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件. 1. read() 接口的问题 f =open(filename, ...

  4. python读取超大文件-强悍的Python读取大文件的解决方案

    Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...

  5. python读取大文件太慢_强悍的Python读取大文件的解决方案

    Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...

  6. python读取大文件-python如何读取大文件以及分析时的性能优化小技巧

    在二代.三代测序背景下,分析人员难免会遇到解析超过1G.或者10G以上的文件.这里将给大家简单介绍下如何用python读取大文件,并给大家提两个优化代码的小建议. 首先,python 读取GB级大文件 ...

  7. python读取大文件-使用Python读取大文件的方法

    背景 最近处理文本文档时(文件约2GB大小),出现memoryError错误和文件读取太慢的问题,后来找到了两种比较快Large File Reading 的方法,本文将介绍这两种读取方法. 准备工作 ...

  8. python读文件代码-简单了解Python读取大文件代码实例

    这篇文章主要介绍了简单了解Python读取大文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通常对于大文件读取及处理,不可能直接加载到内 ...

  9. PHP 与Python 读取大文件的区别

    php读取大文件的方法 <?php function readFile($file) {# 打开文件$handle = fopen($file, 'rb');while (feof($handl ...

最新文章

  1. python 按键获取_Python中按键来获取指定的值
  2. 学python的好处-学习python有什么好处?python强大之处在哪?
  3. 学习vim 从常用按键开始
  4. 【2016年第3期】中国电信大数据应用实践
  5. 价值100大洋的简体中文汉化补丁下载
  6. Spring-core-AnnotationAttributes
  7. OpenGL基础9:纹理
  8. JointJS绘制流程图
  9. 北大生物信息学公开课学习(1)
  10. Eclipse 新手使用教程
  11. HP 打印机驱动安装报错Return code: 1603解决办法
  12. 云服务器5m带宽会有什么样的速度?
  13. 这三种研发工程师千万不能招?
  14. 《直面苦难》--周国平
  15. Entity FrameWork Core使用 Include查询关联数据以及机理。
  16. 神舟精盾 t97 键盘背光灯如何设置亮的时间
  17. 基于python的停车场管理系统的设计与实现/智能停车管理系统
  18. Html5 学习笔记 【PC固定布局】 实战6 咨询页面
  19. Java 多线程 线程同步
  20. java查看附近门店_微信公众号获取用户地理位置并列出附近的门店的示例代码...

热门文章

  1. flume1.7 TailDirSource断点续传与文件更名后数据重复采集的bug修复
  2. Ubuntu中切换用户
  3. %3c %3e 转换html,防止基本的XSS攻击 滤掉HTML标签
  4. java 向量点乘_向量的点乘与叉乘学习笔记
  5. eclipse测试java程序_java-同一项目中的Eclipse junit测试
  6. unity 随机数_Unity 雨水滴到屏幕效果
  7. u-boot之基础知识
  8. 大数据系列1-规划安排
  9. 改进的脱机手写体汉字细化算法
  10. 数据挖掘:银行评分卡制作——数据分箱、WOE、IV的意义