“读取太多gml文件时,”运行错误:fdopen()意外失败“

时间:2018-01-30 16:43:13

标签: python igraph

我正在阅读使用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()

1 个答案:

答案 0 :(得分:1)

你内存不足吗? (我不是python程序员)。如果同时打开多个文件,那么这些打开句柄的缓冲区可能会占用大量内存。此外,您似乎正在将文件的内容附加到内存数组中。如果内容再次变大,则可能是内存问题。