使用Python igraph库读取.net pajek文件

1 投票
1 回答
2473 浏览
提问于 2025-04-17 17:01

我正在尝试使用Python的igraph库加载一个.net文件。下面是我的示例代码:

import igraph
g = igraph.read("s.net",format="pajek")

但是当我运行这个脚本时,我遇到了以下错误:

Traceback (most recent call last):
File "demo.py", line 2, in <module>
g = igraph.read('s.net',format="pajek")
File "C:\Python27\lib\site-packages\igraph\__init__.py", line 3703, in read
return Graph.Read(filename, *args, **kwds)
File "C:\Python27\lib\site-packages\igraph\__init__.py", line 2062, in Read
return reader(f, *args, **kwds)
igraph._igraph.InternalError: Error at .\src\foreign.c:574: Parse error in Pajek
file, line 1 (syntax error, unexpected ARCSLINE, expecting VERTICESLINE), Parse error

请给我一些提示。

1 个回答

2

你的文件要么不是一个标准的Pajek文件,要么igraph的Pajek解析器无法读取这个特定的Pajek文件。(写一个Pajek解析器有点像碰运气,因为Pajek文件格式没有正式的说明书。)如果你把你的Pajek文件发给我,我可以帮你看看。

更新:你缺少了Pajek文件中的*Vertices部分。加上一行像*Vertices N(其中N是图中顶点的数量)就能解决你的问题。我不能说这一行在Pajek文件中是必须的,因为文件格式没有正式的说明,但我见过的所有Pajek文件都包含这一行,所以我想这应该是比较标准的做法。

撰写回答