将图形对象写入dimacs文件格式

时间:2018-04-09 10:36:18

标签: python graph networkx

我使用networkx库创建了一个图形对象,其代码如下。

import networkx as nx

#Convert snap dataset to graph object
g = nx.read_edgelist('com-amazon.ungraph.txt',create_using=nx.Graph(),nodetype = int)
print(nx.info(g))

但是我需要将图形对象写成dimacs文件格式,我相信networkx的功能不包括在内。有办法吗?

1 个答案:

答案 0 :(得分:0)

http://prolland.free.fr/works/research/dsat/dimacs.html中描述的规范非常简单,因此您可以执行以下操作:

g = nx.house_x_graph() # stand-in graph since we don't have your data
dimacs_filename = "mygraph.dimacs" 

with open(dimacs_filename, "w") as f:
    # write the header
    f.write("p EDGE {} {}\n".format(g.number_of_nodes(), g.number_of_edges()))
    # now write all edges
    for u, v in g.edges():
        f.write("e {} {}\n".format(u, v))

这将生成文件“mygraph.dimacs”:

p EDGE 5 8
e 0 1
e 0 2
e 0 3
e 1 2
e 1 3
e 2 3
e 2 4
e 3 4