#python #graphviz
#python #graphviz
Вопрос:
У меня есть файл .gv, и мне нужно получить статистику в python, например:
- Количество ребер
- Количество узлов
- Количество деревьев в сети
- узлы и ребра в дереве
Как я могу получить эту информацию в python?
Комментарии:
1. Вы имеете в виду файл .gv?
2. да. спасибо! Обновил ее.
Ответ №1:
Вы можете использовать, например, pygraphviz.
$ pip3 install pygraphviz
Затем на python, чтобы ответить на два ваших первых вопроса
>>> from pygraphviz import AGraph
>>> graph = AGraph('test.dot')
>>> edge_count = len(list(graph.iteredges()))
>>> node_count = len(list(graph.iternodes()))
>>> print(node_count, edge_count)
Для подсчета деревьев вам нужно будет придумать какую-нибудь рекурсивную функцию: используйте .iteredges()
метод, который дает вам головной и хвостовой узлы, которые подключаются. Соберите эту информацию в некоторую структуру данных по вашему выбору и получите необходимую статистику.
Комментарии:
1. Но у меня есть файл .gv. предоставляет ли она также поддержку для файлов .gv?
2. @AhsanFarooqui не имеет значения, какое расширение имеет файл. Важно то, что содержимое файла является исходным кодом Grapviz graph.
.dot
и.gv
обычно используются взаимозаменяемо для файлов с такими исходными кодами. Вы также можете использовать другое расширение или вообще без расширения : )