如何关闭pyglet中的文件资源
How to close file resources in pyglet
这绝对是 this question 的重复,但看到它在 3 个月内得到了 0 个回复,我似乎找不到答案。问题应该很简单:在 pyglet 中处理完一个文件(比如视频或声音)后,如何关闭该文件?我有一个应用程序必须遍历几十万个文件,依次处理每个文件。出于明显的原因,我得到 OSError: Too many open files
。有没有办法强制关闭 pyglet 的文件?
对于声音或视频文件,您可以使用 Player delete() method 关闭当前源。
您还可以通过在加载调用中将流参数设置为 false 将资源直接加载到内存中而不是从磁盘流式传输:
pyglet.media.load(filename, streaming=False)
如果所有其他方法都失败了,请尝试使用 python.gc.collect()
强制垃圾收集器。
这绝对是 this question 的重复,但看到它在 3 个月内得到了 0 个回复,我似乎找不到答案。问题应该很简单:在 pyglet 中处理完一个文件(比如视频或声音)后,如何关闭该文件?我有一个应用程序必须遍历几十万个文件,依次处理每个文件。出于明显的原因,我得到 OSError: Too many open files
。有没有办法强制关闭 pyglet 的文件?
对于声音或视频文件,您可以使用 Player delete() method 关闭当前源。
您还可以通过在加载调用中将流参数设置为 false 将资源直接加载到内存中而不是从磁盘流式传输:
pyglet.media.load(filename, streaming=False)
如果所有其他方法都失败了,请尝试使用 python.gc.collect()
强制垃圾收集器。