Можно ли получить вывод графика pydot без промежуточного файла?

У меня есть очень простой график, который я хочу построить как SVG. Например:

# graph.dot
graph { 
        a -- b; 
        b -- c; 
    } 

В настоящее время я использую pydot для чтения файла, а затем создать файл SVG следующим образом:

import pydot
graphs = pydot.graph_from_dot_file('graph.dot')
graphs[0].write_svg('graph.svg') # there is only 1 graph so the 0 index.

Тем не менее, мне нужно сделать это без необходимости промежуточных файлов graph.dot а также graph.svg, У меня есть кодовое содержание graph.dot в строке, в соответствии с которой мне нужен вывод SVG в строке.

Мне нужно что-то вроде:

graph_dot = "... ..." # string, I have this
graph_svg = convert_dot_to_svg(graph_dot) 
# i need something like convert_dot_to_svg()

Мой вопрос не ограничивается только pydot. Если кто-то знает веб-API, с помощью которого я могу сделать это, то и он будет делать.

Заранее большое спасибо.

1 ответ

Решение

Потратив немного больше времени на изучение доступных методов на pydot объект и graph объект, это можно выяснить:

Следующий код работает:

import pydot    
dot_string = """graph { 
                    a -- b; 
                    b -- c; 
                } """

graphs = pydot.graph_from_dot_data( dot_string )
svg_string = graphs[0].create_svg() 
Другие вопросы по тегам