前段时间我对在windows7机器上运行python 3.4和networkx 1.9的网络进行了一些分析,但现在我在Arch linux机器上运行(使用相同版本的python但使用networkx 1.10)并且在尝试时遇到问题读取文件.
这是用于读取文件的代码:
import networkx as nxnx.read_gml("dolphins.gml")
这是错误的堆栈跟踪:
Traceback (most recent call last):file "<stdin>",line 1,in <module>file "<string>",line 2,in read_gmlfile "/usr/lib/python3.4/site-packages/networkx/utils/decorators.py",line 220,in _open_fileresult = func(*new_args,**kwargs)file "/usr/lib/python3.4/site-packages/networkx/reaDWrite/gml.py",line 210,in read_gmlG = parse_gml_lines(filter_lines(path),label,destringizer)file "/usr/lib/python3.4/site-packages/networkx/reaDWrite/gml.py",line 383,in parse_gml_linesgraph = parse_graph()file "/usr/lib/python3.4/site-packages/networkx/reaDWrite/gml.py",line 372,in parse_graphcurr_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)
你能读懂这个文件吗?有人经历过类似的问题吗?或者知道是什么产生错误?
先感谢您!
解决方法@H_404_19@ 在较新版本的networkx中,gml文件应遵循更具体的格式. dolphins.gml的问题是在开放方括号之前不应该有任何回车符.例如:格式错误:
graph [ directed 0 node [ ID 0 label "Beak" ] . . .
格式正确:
graph [ directed 0 node [ ID 0 label "Beak" ] . . .
它不关心在方括号之前有多少空格,只要有多个空格并且没有回车符.
我最终做的是使用正则表达式摆脱开头方括号前的空格.以下正则表达式对我有用:
\s+\[
并用“[”替换它.在括号前必须至少有一个空格.
另请注意,每个节点都必须具有唯一标签.
希望它有所帮助.
总结以上是内存溢出为你收集整理的python-3.4 – 读取GML图时出现意外错误全部内容,希望文章能够帮你解决python-3.4 – 读取GML图时出现意外错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)