各种内存错误,python

各种内存错误,python,python,memory,Python,Memory,我正在使用Python,但最近我遇到了很多内存错误 一个是以.png格式保存绘图。一旦我尝试以.pdf格式保存它们,我就不再有这个问题了。我如何仍能对多个文件使用.png 其次,我正在阅读相当大的数据文件,过了一会儿,我的内存就用完了。我每次都试着把它们关上,但也许还有什么东西打开了。有没有一种方法可以关闭Python中所有打开的文件,而不使用处理程序 最后,Python应该释放所有未使用的变量,但我认为它没有这样做。如果我只运行一个函数,我没有问题,但是如果我在行中运行两个不相关的函数(在完成

我正在使用Python,但最近我遇到了很多内存错误

一个是以.png格式保存绘图。一旦我尝试以.pdf格式保存它们,我就不再有这个问题了。我如何仍能对多个文件使用.png

其次,我正在阅读相当大的数据文件,过了一会儿,我的内存就用完了。我每次都试着把它们关上,但也许还有什么东西打开了。有没有一种方法可以关闭Python中所有打开的文件,而不使用处理程序

最后,Python应该释放所有未使用的变量,但我认为它没有这样做。如果我只运行一个函数,我没有问题,但是如果我在行中运行两个不相关的函数(在完成第一个函数之后,在进入第二个函数之前,据我所知,所有变量都应该被释放),在第二个函数期间,我再次运行内存错误问题。因此,我相信,变量在第一次运行后不会释放。如何强制Python释放所有变量(我不想使用del,因为有很多变量,我不想指定它们中的每一个)


谢谢你的帮助

查看代码可能会获得更多许可

你也可以试着去做

import gc
f() #function that eats lots of memory while executing
gc.collect()

这将调用垃圾收集器,您将确保删除所有废弃的对象。如果这不能解决问题,请查看objgraph库,以检测谁泄漏了内存,或者找到忘记删除对内存消耗对象引用的位置。

查看代码可能会带来更多的清除

你也可以试着去做

import gc
f() #function that eats lots of memory while executing
gc.collect()
这将调用垃圾收集器,您将确保删除所有废弃的对象。如果这不能解决问题,请查看objgraph库,以检测谁泄漏了内存,或者找到忘记删除对内存消耗对象引用的位置

其次,我正在阅读相当大的数据文件,过了一会儿,我的内存就用完了。我每次都试着把它们关上,但也许还有什么东西打开了。有没有一种方法可以关闭Python中所有打开的文件,而不使用处理程序

如果将打开(myfile1)的
用作f1:…
,则无需担心关闭文件或意外打开文件

请参阅以获得一个好的解释

至于其他问题,我同意alex_jordan的观点,如果您展示一些代码,会有所帮助

其次,我正在阅读相当大的数据文件,过了一会儿,我的内存就用完了。我每次都试着把它们关上,但也许还有什么东西打开了。有没有一种方法可以关闭Python中所有打开的文件,而不使用处理程序

如果将打开(myfile1)的
用作f1:…
,则无需担心关闭文件或意外打开文件

请参阅以获得一个好的解释


至于其他问题,我同意alex_jordan的观点,如果您展示一些代码,这会有所帮助。

查看代码可能会带来更多的许可。您还可以尝试执行导入gc;gc.collect(),以确保收集所有垃圾。但请注意,垃圾收集并不意味着内存将返回操作系统(据我所知)。这只意味着python可以自由地将内存重新用于新变量等。查看代码可能会带来更多的间隙。您还可以尝试执行导入gc;gc.collect(),以确保收集所有垃圾。但请注意,垃圾收集并不意味着内存将返回操作系统(据我所知)。这只意味着python可以自由地将内存重新用于新变量等。