在python中替换大数据后如何释放内存?

在python中替换大数据后如何释放内存?,python,memory,Python,Memory,我使用python重写数百MB的文件。而且非常快。我的mac电脑内存为16 GB 1600 MHz DDR3,处理器为2.5 GHz Intel Core i7 但问题是。当我想重写另一个文件时。突然间,我甚至无法流畅地打开包含数百MB数据的文件。而且处理速度很慢 是因为我没有释放内存吗?为什么我的mac变得如此缓慢,甚至在我重写了一些文件后才打开一个文件 仅供参考,我使用textmate编写python。我对python真的很陌生。python有一个内置的垃圾收集器,可以自动释放不再需要的变量

我使用python重写数百MB的文件。而且非常快。我的mac电脑内存为16 GB 1600 MHz DDR3,处理器为2.5 GHz Intel Core i7

但问题是。当我想重写另一个文件时。突然间,我甚至无法流畅地打开包含数百MB数据的文件。而且处理速度很慢

是因为我没有释放内存吗?为什么我的mac变得如此缓慢,甚至在我重写了一些文件后才打开一个文件


仅供参考,我使用textmate编写python。我对python真的很陌生。

python有一个内置的垃圾收集器,可以自动释放不再需要的变量所使用的内存。所以,这不应该是内存的问题

但如果您不关闭这些文件,它们将保持打开状态,并且其中的一些内容在内存中,Python解释器认为您将使用它们

首先,检查是否正确关闭文件

f=open("file.txt")
a=f.read()
f.close()
甚至更好

with open("file.txt") as input:
    data=input.read()
在这里,文件自动关闭


如果您的某些变量变得非常大,您可以手动删除它:del data

写入文件后是否关闭这些文件?抱歉,我的水晶球需要修复。。。但是如果您发布代码,我们可能有机会发现问题。我想将一些数据导入mongodb。我有一些.dat文件,文件中有一些特殊符号,比如::双冒号。我使用python将双冒号重写为逗号。这是我的代码:“打开”ratings.dat“为f:lines=f.readlines为line-in-line:line=line.replace“::”,“print-line”我甚至重新启动了我的mac,但速度仍然很慢。昨晚我花了整整一个晚上重写数据。现在我尝试了你的代码,没有结果。看来已经康复了