如何在Python中创建点文件?

如何在Python中创建点文件?,python,graphviz,dot,Python,Graphviz,Dot,我有一个数字电路模拟器,需要画一个与这个问题(和答案)几乎完全相同的电路图 这是我第一次遇到DOT和graphviz。幸运的是,DOT语言规范是可用的,并且还有许多示例 然而,有一个细节我还不清楚,我作为一个新手问:我有一个完整的数据来绘制图表。如何从中创建点文件 作为一行一行的文本 # SIMPLIFIED PSEUDOCODE dotlines = ["digraph CIRCUIT {"] for node in all_nodes: dotlines.append(" {}[{

我有一个数字电路模拟器,需要画一个与这个问题(和答案)几乎完全相同的电路图

这是我第一次遇到DOT和graphviz。幸运的是,DOT语言规范是可用的,并且还有许多示例

然而,有一个细节我还不清楚,我作为一个新手问:我有一个完整的数据来绘制图表。如何从中创建点文件

作为一行一行的文本

# SIMPLIFIED PSEUDOCODE
dotlines = ["digraph CIRCUIT {"]
for node in all_nodes:
    dotlines.append("  {}[{}];".format(node.name, node.data))
for edge in all_edges:
    dotlines.append("  {} -> {};".format(edge.from_name, edge.to_name))
dotlines.append['}']
dot = "\n".join(dotlines)
<>或者我应该以某种方式转换我的数据并使用一些以点格式输出的模块?

你可以考虑。
我不同意@MatteoItalia的评论(可能是品味的问题)。您应该熟悉任务的可用软件包。您从简单的图形开始,并不认为有理由使用(非常简单的)包。在某些情况下,图形的复杂性可能会增加,但您会继续将自己的解决方案应用到现成的解决方案中。

文件格式似乎足够简单,我认为没有理由引入库(特别是因为任何库都可能要求您在其自己的数据结构中提供图形)。我建议您使用gvgen。让它变得非常简单。我后悔使用pygraphviz,因为它有非常重的依赖性。我深入研究了谷歌搜索结果,发现gvgen更容易跨平台安装。
>>> import pygraphviz as pgv
>>> G=pgv.AGraph()
>>> G.add_node('a')
>>> G.add_edge('b','c')
>>> G
strict graph {
        a;
        b -- c;
}