dot言語はグラフ構造をテキストファイルで表したもの。pydotというライブラリが有名だそうだが、手元で動かなかったためpydotplus(pydotplus 2.0.2 : Python Package Index)というライブラリをインストールした。dotファイルを読み込んだあとは基本的にgetter/setterで値にアクセスする。pythonでgetter/setter書く例は少ないので実装を確認したところ、メンバ変数は実際には辞書で登録されていた。
import pydotplus with open("Applic_8h__dep__incl.dot") as f: graph_data = f.read() # 読み込み g = pydotplus.parser.parse_dot_data(graph_data) # ノード g.get_nodes() node0 = g.get_nodes()[0] node0.get_name() node0.to_string() for i in g.get_nodes(): print(i.get_label()) # エッジ g.get_edges() edge0 = g.get_edges()[0] edge0.get_color() edge0.get_destination() edge0.get_source()