我想以5GB文件读取以文本格式存储的数据。当我尝试使用此代码读取文件内容时:
file = open('../data/entries_en.txt', 'r')
data = file.readlines()
发生错误: data = file.readlines() 的MemoryError 当我想运行程序时,我的笔记本电脑有8GB内存,至少4GB是空的。但是当我监视系统性能时,当python使用大约1.5GB的内存时,就会发生这种错误 我使用的是python 2.7,但是如果它很重要请告诉我2.x和3.x的解决方案 我该怎么做才能阅读这个文件?
答案 0 :(得分:3)
处理大文件的最佳方式是 -
with open('../file.txt', 'r') as f:
for line in f:
# do stuff
readlines()
会出错,因为您尝试将过大的文件直接加载到内存中。完成处理后,上面的代码会自动关闭你的文件。
答案 1 :(得分:2)
如果要处理文件中的行,则应使用:
for line in file:
# do something with the line
它将逐行读取文件,而不是立即将其全部读取到RAM中。