读取太多 gml 文件时"RuntimeError: fdopen() failed unexpectedly"



我使用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()

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

最新更新