强悍的 Python —— 读取大文件
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
- How to read large file, line by line in python
强悍的 Python —— 读取大文件相关推荐
- python读取大文件-强悍的Python读取大文件的解决方案
Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...
- python读取大文件性能_强悍的Python读取大文件的解决方案
Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...
- python中0xff_强悍的Python读取大文件的解决方案
这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件. 1. read() 接口的问题 f =open(filename, ...
- python读取超大文件-强悍的Python读取大文件的解决方案
Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...
- python读取大文件太慢_强悍的Python读取大文件的解决方案
Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...
- python读取大文件-python如何读取大文件以及分析时的性能优化小技巧
在二代.三代测序背景下,分析人员难免会遇到解析超过1G.或者10G以上的文件.这里将给大家简单介绍下如何用python读取大文件,并给大家提两个优化代码的小建议. 首先,python 读取GB级大文件 ...
- python读取大文件-使用Python读取大文件的方法
背景 最近处理文本文档时(文件约2GB大小),出现memoryError错误和文件读取太慢的问题,后来找到了两种比较快Large File Reading 的方法,本文将介绍这两种读取方法. 准备工作 ...
- python读文件代码-简单了解Python读取大文件代码实例
这篇文章主要介绍了简单了解Python读取大文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通常对于大文件读取及处理,不可能直接加载到内 ...
- PHP 与Python 读取大文件的区别
php读取大文件的方法 <?php function readFile($file) {# 打开文件$handle = fopen($file, 'rb');while (feof($handl ...
最新文章
- python 按键获取_Python中按键来获取指定的值
- 学python的好处-学习python有什么好处?python强大之处在哪?
- 学习vim 从常用按键开始
- 【2016年第3期】中国电信大数据应用实践
- 价值100大洋的简体中文汉化补丁下载
- Spring-core-AnnotationAttributes
- OpenGL基础9:纹理
- JointJS绘制流程图
- 北大生物信息学公开课学习(1)
- Eclipse 新手使用教程
- HP 打印机驱动安装报错Return code: 1603解决办法
- 云服务器5m带宽会有什么样的速度?
- 这三种研发工程师千万不能招?
- 《直面苦难》--周国平
- Entity FrameWork Core使用 Include查询关联数据以及机理。
- 神舟精盾 t97 键盘背光灯如何设置亮的时间
- 基于python的停车场管理系统的设计与实现/智能停车管理系统
- Html5 学习笔记 【PC固定布局】 实战6 咨询页面
- Java 多线程 线程同步
- java查看附近门店_微信公众号获取用户地理位置并列出附近的门店的示例代码...