我用networkX制作了一个大约有5000个节点的大型图。每次执行脚本时,创建这个图大约需要30秒。经过这段相对较长的时间后,我可以像shortest_path
等运行我的分析
我的问题是,有没有办法将这个图的对象存储在文件或类似的文件中,每次我运行脚本时,networkX都会读取该文件并加载我的所有图?
从2.6版本起,方法write_gpickle
和read_gpickle
已弃用。试试这个:
import pickle
# save graph object to file
pickle.dump(G, open('filename.pickle', 'wb'))
# load graph object from file
G = pickle.load(open('filename.pickle', 'rb'))
注意open()
中要转储的'wb'
和要加载的'rb'
选项。
您可以使用gpickle
来执行此操作。假设你的图用G
表示,你可以用保存它
nx.write_gpickle(G,'myGraph.gpickle')
并加载
G = nx.read_gpickle('myGraph.gpickle')
https://networkx.org/documentation/stable//reference/readwrite/gpickle.html#pickled-图形