Python,解析30MB文件时遇到内存错误(已下载到我的本地计算机中)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python,解析30MB文件时遇到内存错误(已下载到我的本地计算机中)相关的知识,希望对你有一定的参考价值。

这是我的下载地址,文件名为'kosarak'

http://fimi.uantwerpen.be/data/

我的解析代码是:

parsedDat = [line.split() for line in open('kosarak.dat').readlines()]

我总体上需要此数据来在其上运行某种方法,因此在一行中逐行阅读并在每一行上进行操作都不适合我。

文件只有30 MB,我的计算机上至少还有10G的内存和30 + G的硬盘空间,所以我想应该不会有任何资源问题

仅供参考:我的python版本是2.7,我正在Spyder中运行我的python。我的操作系统是Windows 10。

PS:您可以使用我的解析代码/方法来完成这项工作,只要您可以将文件中的数据传输到我的python环境中就可以了。

答案

也许这可能有所帮助。

with open('kosarak.dat', 'r') as f:  # Or 'rb' for binary data.
    parsed_data = [line.split() for line in f]

区别在于您的方法一次读取文件中的所有行,然后处理每一行(有效地需要2倍内存,一次用于文件数据,再一次用于解析的数据,所有这些都必须存储在内存中同时),而这种方法只是逐行读取文件,只需要内存来存储结果parsed_data

以上是关于Python,解析30MB文件时遇到内存错误(已下载到我的本地计算机中)的主要内容,如果未能解决你的问题,请参考以下文章

解析XML后,Python不会释放内存

python内存错误(有足够的可用内存)

Nmap::Parser,大文件的分段错误

从 S3 将嵌套文本文件读入 spark 时出现内存错误

Android处理图片OOM的若干方法小结

在Python中解析大量数据时,如何处理索引超出范围错误?