3

我正在从事一个项目,该项目涉及使用从其他来源提取的图形。目前我们正在使用 python 的networkx模块来分析图形。

我现在面临的任务是选择存储图形的格式。对于纯基于 python 的解决方案,Pickle 似乎是一个不错的选择。然而,我们现在处于原型设计阶段,很有可能我们将不得不切换到 C++ 来解决性能和可伸缩性问题。

因此,我希望以大多数图形库广泛支持的格式存储我的图形,以最大程度地减少项目中未来贡献者面临的麻烦。

你能给我一些关于我应该使用哪种格式的建议吗?

4

2 回答 2

4

TGF是您的解决方案。

蟒蛇示例:

 #!/usr/bin/python

import fileinput, re

depends = {}
for line in fileinput.input():
    m = re.match('(.+):\s*(.*)',line) # find every depenency line of the form "<item>: <dependencies>"
    if m:
        item = m.group(1)
        dependency_list = m.group(2)
        print item,item # node definition

        if dependency_list: # there are dependencies
            depends[item] = dependency_list.split() # store the list into a dictionary for later

print "#" # end of node list, start of edge list

for item in depends:
    for dependency in depends[item]:
        print item,dependency # edge definition
于 2012-06-22T10:09:43.067 回答
0

我在这里不是很相关,但是基于图形的数据库不能完成这项工作吗?

例如,您有几个选项,例如Neo4jAllegroGraph,您会很容易地找到一些针对 python 或任何其他语言的绑定,并且大多数解决方案也提供了 REST API。

请注意,我提供的第一个链接不是最新的,现在有更多的解决方案,并且 Python 的 API 可用,即使它没有写在上面。你也可以看看这里(图数据库部分)。

编辑我发现看看这个也可能很有趣,它似乎是一种适合以 JSON 样式或分隔文本处理和存储图形的格式:

此外,您可能想看看这里:

于 2012-06-22T10:34:08.073 回答