在Python中查找graphviz中的边缘列表

时间:2017-11-22 03:18:38

标签: python python-3.x python-2.7 graphviz

有没有办法在python中获取graphviz中的边列表。在我的程序中,我想在有向图中添加边之前检查节点之间是否已存在边缘。我在python中的grahviz中找不到像get_edge()has_connected()函数这样的函数。还有其他方法可以完成上述任务吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我刚遇到这个问题。我没有在源代码中看到任何表明检查边是否在图中的方便方法。

如果你正在处理一个非常简单的图表,那么这可能会有所帮助。

def has_edge(graph, v1, v2):
    tail_name = graph._quote_edge(v1)
    head_name = graph._quote_edge(v2)
    return (graph._edge % (tail_name, head_name, '')) in graph.body

我从graphviz / dot.py中的'edge()'方法改编了这个。它不处理任何属性。

从我所看到的,graph.body是一个表示节点和边缘的字符串列表。

答案 1 :(得分:0)

如果您的目标是避免重复边缘,请使用Digraph(strict=True)Graph(strict=True)