我正在阅读使用igraph和python的太多GML文件(几千个)。 在运行代码的某个时刻,我得到以下运行时错误:
RuntimeError: fdopen() failed unexpectedly
我花了很多时间试图了解原因,但我没有发现任何有用的东西。
根本原因来自此处的代码https://github.com/igraph/python-igraph/blob/master/src/filehandle.c#L231
我使用的代码如下。在阅读了几百个文件之后,它在阅读GML的路线上打破了。
gmls= []
for f in sorted(glob.glob('path_to_gmls'), key=os.path.getsize):
g = Graph.Read_GML(f)
gmls.append(g)
更新: 我在Mac上尝试了相同的代码,它运行得很好。问题出在Windows上。
UPDATE2: 我使用以下代码测试了包,它运行没有问题。
import igraph.test
igraph.test.run_tests()
答案 0 :(得分:1)
你内存不足吗? (我不是python程序员)。如果同时打开多个文件,那么这些打开句柄的缓冲区可能会占用大量内存。此外,您似乎正在将文件的内容附加到内存数组中。如果内容再次变大,则可能是内存问题。