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文件时遇到内存错误(已下载到我的本地计算机中)的主要内容,如果未能解决你的问题,请参考以下文章