Python内存错误读取文本-最快的解决方案?

Python内存错误读取文本-最快的解决方案?,python,memory,text,Python,Memory,Text,我有很多+-4GB的文本文件,当我用Python一次读取它们时,它给了我一个MemoryError(尽管从PC性能来看,它甚至没有接近最大内存)。当迭代文件时,脚本会变得慢得多。有没有人有办法快速轻松地读取如此大的文件?还是增加Python中的内存限制 谢谢。如果您正在读取一个大文件,然后将行存储在数组中,那么实际上您将需要的内存大小增加一倍 如果您使用的是line=input.readlines(),则可以使用一个源。如果这是问题的根源,您可以将其替换为: for item in input:

我有很多+-4GB的文本文件,当我用Python一次读取它们时,它给了我一个MemoryError(尽管从PC性能来看,它甚至没有接近最大内存)。当迭代文件时,脚本会变得慢得多。有没有人有办法快速轻松地读取如此大的文件?还是增加Python中的内存限制


谢谢。

如果您正在读取一个大文件,然后将行存储在数组中,那么实际上您将需要的内存大小增加一倍

如果您使用的是
line=input.readlines()
,则可以使用一个源。如果这是问题的根源,您可以将其替换为:

for item in input:
    function(item)
它在每一行上迭代

也可以考虑使用<代码> CSV 库,如果您的文本文件是CSV。


()

看看mmap:你想解决什么问题?您是在读取文件以聚合某些数据,还是进行文本比较?再多了解一下为什么要读取这么大的文件会很有用。“最大内存”-你说的是RAM还是虚拟内存?您使用的是32位还是64位Python?32位上虚拟地址的最大大小为0xffffffff-4GB,在Windows上,进程地址空间中的用户代码只能使用其中的一半。因此,在32位上,无论有多少RAM,您的最大内存只有2GB。您真的需要同时在内存中存储所有这些数据吗?我确实使用32位Python。我正试图对文本文件进行数据分析,这些文本文件包括RNA序列与人类参考基因组的映射数据。这意味着每个文件由+-4000.000个序列行组成,每行中都有标签信息。我只想做一些基本的分析(计算一些事情等)。在每一行上迭代每分钟需要3分钟,然后这只是我的分析的第1步:(我想你需要添加一些代码和输入来完全诊断这个问题。同时,考虑为你所尝试的内容张贴一些时间结果。每个文件需要大约+-3分钟来处理(当重复行时)。每个文本文件+-400万行。如何在不重复行的情况下读取行?如果您使用linux,您可能会发现使用grep或awk首先解析为较小的文件,然后根据需要读取这些文件会更快。