python读取大文件-强悍的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:
对可迭代对象 f,进行迭代遍历:for line in f,会自动地使用缓冲IO(buffered IO)以及内存管理,而不必担心任何大文件的问题。
There should be one �C and preferably only one �C obvious way to do it.
Reference
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接
python读取大文件-强悍的Python读取大文件的解决方案相关推荐
- python读取超大文件-强悍的Python读取大文件的解决方案
Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...
- python按行读取文件效率高吗_Python按行读取文件的实现方法【小文件和大文件读取】...
本文实例讲述了Python按行读取文件的实现方法.分享给大家供大家参考,具体如下: 小文件: #coding=utf-8 #author: walker #date: 2013-12-30 #func ...
- python读取大文件csv_python 快速把超大txt文件转存为csv的实例
python 快速把超大txt文件转存为csv的实例 今天项目有个需求,就是把txt文件转为csv,txt之间是空格隔开,转为csv时需要把空格转换为逗号,网上找的一个版本,只需要三行代码,特别犀利: ...
- python读取hdf-eos5数据_《Python和HDF 5大数据应用》——2.4 你的第一个HDF5文件-阿里云开发者社区...
本节书摘来自异步社区<Python和HDF 5大数据应用>一书中的第2章,第2.4节,作者[美]Andrew Collette(科莱特),胡世杰 译,更多章节内容可以访问云栖社区" ...
- python读取大文件csv_对python中大文件的导入与导出方法详解
1.csv文件的导入和导出 通过一个矩阵导出为csv文件,将csv文件导入为矩阵 将csv文件导入到一个矩阵中 import numpy my_matrix = numpy.loadtxt(open( ...
- python用os.system打开wav文件_使用python读取wav格式文件
** 使用python读取wav格式文件 ** - 基本概念 [采样频率] 即取样频率, 指每秒钟取得声音样本的次数.采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多.由 ...
- c++读取utf8文件_【Python】File文件对象
open()方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() ...
- python读取文件模式_python如何读取文件的数据
使用 read() 函数读取文件时,如果文件过大,则一次读取全部内容到内存,容易造成内存不足,而相比每次限制读取字符(或字节)的个数,更推荐大家使用逐行读取文件的方式.一般情况下,逐行读取只适用于以文 ...
- python如何读写文件-python文件的写入和读取
1.txt,xls,doc等文件的使用 f=open("filename","w") 打开一个用于写入的文件,要写入内容时使用f.write("内容& ...
最新文章
- zabbix 概念理解
- C++ STL: lower_bound 和 upper_bound
- 伟大公司为什么都考核价值观?
- cdr文件过大导出pdf打不开_PDF快速导出JPG对应的分辨率技巧
- lpc1768的gpio库函数_LPC1768之GPIO流水灯的实验例程
- JSONArray传值的使用小结
- 如何修改WAMP中mysql默认空密码重新登录phpmyadmin
- Ambari安装之安装并配置Ambari-server(三)
- 已经安装mysql xampp_windows 7 本机已安装mysql5的情况上 安装XAMPP
- ajax一直返回 error
- 3dmax 保存慢 卡死
- 自己动手写网络爬虫(第一天)
- bitbucket搭建
- 快速拿下CKA认证考试,这些要求和tips你得知道
- ubuntu 20.04 安装软件踩坑
- maven打包时本地的jar包打不进去
- 一键训练 deeplabv3seg、squeezeseg、voxelnet Docker镜像安装
- JavaSE--IO流
- undefined reference to 'floor'/undefined reference to
- 图片懒加载是怎么实现的?如何实现图片懒加载?
热门文章
- 我的第一个React Native App
- myeclipse定位代码文件位置
- Codeforces Round #316 (Div. 2) D. Tree Requests dfs序
- 数据结构和算法系列5 七大排序之冒泡排序和快速排序
- 11.6 如何使用内嵌资源类(ResourceRetriever)?
- SPA单页应用前后分离微信授权
- sql中Cast()函数的用法
- python---基础知识回顾(五)(python2.7和python3.5中的编码)
- 【BZOJ1086】[SCOI2005]王室联邦 树分块
- What you should know about .so files