我已经下载了包含dolphins social network的gml文件。
不久前,我对运行python3.4和networkx1.9的网络在Windows7机器上做了一些分析,但现在我在Arch机器上运行(使用相同版本的python,但使用networkx1.10的),在试图读取文件时发现了一个问题。
这是用于读取文件的代码:
import networkx as nx
nx.read_gml("dolphins.gml")这是错误的堆栈跟踪:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 2, in read_gml
File "/usr/lib/python3.4/site-packages/networkx/utils/decorators.py",line 220, in _open_file
result = func(*new_args, **kwargs)
File "/usr/lib/python3.4/site-packages/networkx/readwrite/gml.py", line 210, in read_gml
G = parse_gml_lines(filter_lines(path), label, destringizer)
File "/usr/lib/python3.4/site-packages/networkx/readwrite/gml.py", line 383, in parse_gml_lines
graph = parse_graph()
File "/usr/lib/python3.4/site-packages/networkx/readwrite/gml.py", line 372, in parse_graph
curr_token, dct = parse_kv(next(tokens))
File "/usr/lib/python3.4/site-packages/networkx/readwrite/gml.py", line 323, in tokenize
(line[pos:], lineno + 1, pos + 1))
networkx.exception.NetworkXError: cannot tokenize 'graph' at (1, 1)你能读到文件吗?有人经历过类似的问题吗?或者知道是什么产生了错误?
提前谢谢你!
发布于 2015-10-01 21:37:11
它通过将networkx版本从1.10降至1.9.1进行了工作。
希望这个答案能帮助到其他人。
发布于 2016-06-14 18:38:38
在较新版本的networkx中,gml文件应该遵循更特定的格式。dolphins.gml的问题是,在开放的方括号之前不应该有任何回车。例如:
格式错误:
graph
[
directed 0
node
[
id 0
label "Beak"
]
.
.
.正确格式:
graph [
directed 0
node [
id 0
label "Beak"
]
.
.
.它不在乎在方括号前有多少空位,只要有超过一个,而且没有回车。
最后我所做的是使用正则表达式来去掉开头方括号之前的空格。以下准则适用于我:
\s+\[代之以“[”]。支架前必须至少有一个空格。
还要记住,每个节点都必须有一个唯一的标签。
希望能帮上忙。
https://stackoverflow.com/questions/32895291
复制相似问题