【问题标题】:Convert Digraph to StringIO with graphviz使用 graphviz 将 Digraph 转换为 StringIO
【发布时间】:2018-12-16 21:14:49
【问题描述】:

有谁知道如何将Digraph 转换为io.StringIO png 的技巧?我能找到的唯一代码是将它保存到磁盘,但我想省略任何磁盘使用情况,而是在内存中处理它:

from graphviz import Digraph
import io

dot = Digraph(comment='The Round Table')
dot.node('A', 'King Arthur')

# instead of this...
dot.render('test-output/round-table.gv', view=True)

# ... I need something like this:
data = io.StringIO()
dot.export_to_png(dot)

【问题讨论】:

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


    【解决方案1】:

    这样的?

    from graphviz import Digraph
    import io
    
    dot = Digraph(comment='The Round Table', format='gv')
    dot.node('A', 'King Arthur')
    
    data = io.StringIO()
    
    print("writing")
    data.write( dot.pipe().decode('utf-8') )
    
    print("reading")
    data.seek(0)
    print(data.read())
    
    # print(data.getvalue())
    
    
    data.close()
    

    【讨论】:

    • 完美!而已。但只是想知道,有些字符可能在 utf-8 中不可用,所以我只使用 latin-1 和 pipe(format="png") 代替。无论如何,这很完美!谢谢
    猜你喜欢
    • 1970-01-01
    • 2022-06-15
    • 2014-09-15
    • 2011-07-31
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多