NetworkX: написать график в формате LEDA

Я использую NetworkX Модуль Python для работы с графиками, и я доволен этим до сих пор.

Тем не менее, я попытался записать график в файл в формате LEDA (более подробную информацию здесь). NetworkX документация, кажется, не упоминает ни одной функции, чтобы сделать это (я только нашел, как читать и анализировать отформатированные графики LEDA). Есть ли функция для написания графиков в формате LEDA, которую я не видел?

1 ответ

Я создал код для записи графика в формате leda:

      import networkx as nx
import os
import pandas as pd
df = pd.read_csv(file,header=0,sep="\t")
    G = nx.Graph()
    G = nx.from_pandas_edgelist(df, 'from', 'to')
    path_sub_network_leda=str(file)+ ".gw"
    with open(path_sub_network_leda,"a") as file_graph:
        file_graph.write('LEDA.GRAPH\n')
        file_graph.write('void\n')
        file_graph.write('void\n')
        file_graph.write('-2\n')
        file_graph.write(str(G.order())+str("\n"))
        nodes = list(G)
        nodenumber = dict(zip(nodes, range(1, len(nodes) + 1)))
        for n in nodes:
            node_row=str("|{") + str(n) + str("}|")+str("\n")
            file_graph.write(node_row)
        file_graph.write(str(G.number_of_edges())+str("\n"))
        for u, v, edgedata in G.edges(data=True):
            d = edgedata.copy()
            edge_row=str(nodenumber[u]) +" " + str(nodenumber[v])+ " "+ str(0)+ str(" |{}|") +str("\n")
            file_graph.write(edge_row)
Другие вопросы по тегам