python-3.4 – 读取GML图时出现意外错误

前端之家收集整理的这篇文章主要介绍了python-3.4 – 读取GML图时出现意外错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经下载了包含 dolphins social network的gml文件.

前段时间我对在Windows7机器上运行python 3.4和networkx 1.9的网络进行了一些分析,但现在我在Arch linux机器上运行(使用相同版本的python但使用networkx 1.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)

你能读懂这个文件吗?有人经历过类似的问题吗?或者知道是什么产生错误

先感谢您!

解决方法

在较新版本的networkx中,gml文件应遵循更具体的格式. dolphins.gml的问题是在开放方括号之前不应该有任何回车符.例如:

格式错误

graph 
[
  directed 0
  node 
  [
    id 0
    label "Beak"
  ]
  .
  .
  .

格式正确:

graph [
  directed 0
  node [
    id 0
    label "Beak"
  ]
  .
  .
  .

它不关心在方括号之前有多少空格,只要有多个空格并且没有回车符.

我最终做的是使用正则表达式摆脱开头方括号前的空格.以下正则表达式对我有用:

\s+\[

并用“[”替换它.在括号前必须至少有一个空格.

另请注意,每个节点都必须具有唯一标签.

希望它有所帮助.

原文链接:https://www.f2er.com/python/241780.html

猜你在找的Python相关文章