尝试加载 5GB 文本文件时出现 Python MemoryError

ehs*_*adi 1 python file out-of-memory text-files large-data

我想读取以文本格式存储在 5GB 文件中的数据。当我尝试使用此代码读取文件内容时:

file = open('../data/entries_en.txt', 'r')
data = file.readlines()
Run Code Online (Sandbox Code Playgroud)

发生错误:data = file.readlines() MemoryError 我的笔记本电脑有 8GB 内存,当我想运行程序时,至少有 4GB 是空的。但是当我监控系统性能时,当python使用大约1.5GB的内存时,就会发生这个错误。
我正在使用 python 2.7,但如果重要,请告诉我 2.x 和 3.x 的解决方案我应该怎么做才能读取这个文件?

Viv*_*Rai 5

您处理大文件的最佳方法是-

with open('../file.txt', 'r') as f:
    for line in f:
        # do stuff
Run Code Online (Sandbox Code Playgroud)

readlines()会出错,因为您试图将太大的文件直接加载到内存中。完成处理后,上面的代码将自动关闭您的文件。