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