我使用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的功能不包括在内。有办法吗?
答案 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