如何从 python 脚本创建多个 PlantUML 图?

设想

大多数说明建议您可以使用 python 生成 PlantUML 图python -m plantuml example_diagram.txt:我想创建一个 python 脚本,它在创建时生成多个 PlantUML 图,这样我就可以立即更新一组完整的图,而无需运行多个命令。


示例文件

以下文件用于生成 PlantUML 图:


example_flow.txt内容:

' http://tonyballantyne.com/graphs.html#orgheadline19

' http://graphviz.org/doc/info/shapes.html


' Indicate the direction of the flowchart

left to right direction


' Give a block the variable name 'first' and define starting point as (*)

(*) --> "The first block" as first


first --> "A" as A

' Give the block a variable name s.t. you can just use its variable name in the next blocks

  --> "D" as D

first --> "B" as B

  --> D

first --> "C" as C

  --> D

  

' Define end point as (*)  

D --> (*)

Graphviz_example.txt内容:

' http://tonyballantyne.com/graphs.html#orgheadline19

' http://graphviz.org/doc/info/shapes.html


digraph summary{

    // initialize the variable blocks

    start [label="Start with a Node"]

    next [label="Choose your shape", shape=box]

    warning [label="Don't go overboard", color=Blue, fontcolor=Red,fontsize=24,style=filled, fillcolor=green,shape=octagon]

    end [label="Draw your graph!", shape=box, style=filled, fillcolor=yellow]


    // Indicate the direction of the flowchart

    rankdir=LR; // Rank direction left to right

    

    // Create the connections

    start->next

    start->warning 

    next->end [label="Getting Better...", fontcolor=darkblue]


}

问题

如何从单个 python 脚本创建这些图表?


米琪卡哇伊
浏览 61回答 1
1回答

呼唤远方

为同一目录下的2个文件生成创建一个以内容命名的 python 文件create_diagrams.py:from plantuml import PlantUMLfrom os.path import abspath# create a server object to call for your computationsserver = PlantUML(url='http://www.plantuml.com/plantuml/img/',                          basic_auth={},                          form_auth={}, http_opts={}, request_opts={})# Send and compile your diagram files to/with the PlantUML serverserver.processes_file(abspath('./example_flow.txt'))server.processes_file(abspath('./Graphviz_example.txt'))并运行它,例如在带有 python 3.6 的 anaconda 中使用命令:python create_diagrams.py。为目录中的所有文件生成还可以为.txt目录中的所有文件生成图表Diagrams:from plantuml import PlantUMLimport osfrom os.path import abspathserver = PlantUML(url='http://www.plantuml.com/plantuml/img/',                          basic_auth={},                          form_auth={}, http_opts={}, request_opts={})# create subfolder namediagram_dir = "./Diagrams"# loop through all .txt files in the subfolderfor file in os.listdir(diagram_dir):  filename = os.fsdecode(file)  if filename.endswith(".txt"):    # Call the PlantUML server on the .txt file    server.processes_file(abspath(f'./Diagrams/{filename}'))笔记此实现需要有效的互联网连接,因为您要求 PlantUML 服务器为您生成图形。要在本地编译,您还可以下载.jarPlantUML 软件的文件并从 python 调用它来进行计算。这篇文章的问题中给出了一个更详细的例子。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python