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

时间:2013-02-25 08:24:14

标签: python igraph

我正在尝试使用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 个答案:

答案 0 :(得分:2)

您的文件不是常规的Pajek文件,或者igraph的Pajek解析器无法读取此特定的Pajek文件。 (由于Pajek文件格式没有正式的规范,因此编写一个Pajek解析器有点蠢蠢欲动)。如果您通过电子邮件将Pajek文件发送给我,我会看一下。

更新:您错过了Pajek文件的*Vertices部分。添加像*Vertices N这样的行(其中N是图中的顶点数)可以解决您的问题。由于缺乏文件格式的正式规范,我不能说这条行在Pajek文件中是强制性的,但到目前为止我看到的所有Pajek文件都包含了这一行,所以我猜它很标准。