通过使用python解析文件,创建一组框及其连接

2024-10-03 11:13:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件:

    class building1 ;
.....
.....
.....
    endclass

    class building2 ;
.....
.....
.....
    endclass



    class building3 ;
.....
.....
.....
endlcass


    class INSTRASTRUCTURE ;
building1 A; building2 B;  building3 C;

endclass


    class C;

A a;
B b;

a.connection(b);

endclass

我想创建一个INFRASTRUCTURE的图形表示,它有建筑a、B、C(较小的框)。现在在框C中,a连接到b,所以代码应该读取它并创建一行来显示a和b之间的连接。我如何实现这一点


Tags: 文件代码图形connectioninfrastructureclass建筑endclass
1条回答
网友
1楼 · 发布于 2024-10-03 11:13:01

为了尽可能简单,我使用svg的图形可视化,如: 将graphviz作为gv导入

def to_svg_node_list(node_list, folder = 'img' , name = 'g2', fn = str):
g = gv.Digraph(format='svg')

for node in node_list:
    g.node(fn(node))  

for node in node_list:            
    for child in node.children:
        g.edge(fn(node), fn(child))

g.render(folder + '/' + name)

其中:node_list = [a,b] # your structures, 在类内部定义oenstr方法,或者定义它们自己的字符串表示形式

每个结构都有子字段,就像你有a.connection(b)的意思一样

a.children = [b]

这将生成类似以下内容的svg文件:

digraph {
    a-> b
... etc

可以在浏览器中打开的内容

相关问题 更多 >