Her*_*dcb 6 networkx archlinux python-3.4
我已经下载了包含海豚社交网络的gml文件.
前段时间我对在Windows7机器上运行python 3.4和networkx 1.9的网络进行了一些分析,但现在我在Arch linux机器上运行(使用相同版本的python但使用networkx 1.10)并且在尝试时遇到问题读取文件.
这是用于读取文件的代码:
import networkx as nx
nx.read_gml("dolphins.gml")
Run Code Online (Sandbox Code Playgroud)
这是错误的堆栈跟踪:
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)
Run Code Online (Sandbox Code Playgroud)
你能读懂这个文件吗?有人经历过类似的问题吗?或者知道是什么产生错误?
先感谢您!
在较新版本的networkx中,gml文件应遵循更具体的格式.dolphins.gml的问题是在开放方括号之前不应该有任何回车符.例如:
格式错误:
graph
[
directed 0
node
[
id 0
label "Beak"
]
.
.
.
Run Code Online (Sandbox Code Playgroud)
格式正确:
graph [
directed 0
node [
id 0
label "Beak"
]
.
.
.
Run Code Online (Sandbox Code Playgroud)
它不关心在方括号之前有多少空格,只要有多个空格并且没有回车符.
我最终做的是使用正则表达式摆脱开头方括号前的空格.以下正则表达式对我有用:
\s+\[
Run Code Online (Sandbox Code Playgroud)
并用"["替换它.在括号前必须至少有一个空格.
另请注意,每个节点都必须具有唯一标签.
希望它有所帮助.
| 归档时间: |
|
| 查看次数: |
4407 次 |
| 最近记录: |