Crm*_*nCA 5 list pickle networkx
我有一个使用 NetworkX 创建的 MultiDiGraph(有向图,允许每对节点之间有多个边)的列表。我已将这些图表存储在列表中。现在,我想腌制这个列表,以便将来可以使用它 - 我知道我可以使用其他存储方法,但我对这个特别感兴趣 -。
如果我想将来使用它,我还希望能够将腌制信息加载到另一个图表列表中。
谁能告诉我如何腌制和解腌这种物体?谢谢。
我用于cPicklepython2 (它更快),但pickle用于 python3,因此import相应地取决于您使用的 python。
import cPickle as pickle # python2
import pickle # python3
import networkx as nx
# Make graph
G = nx.MultiDiGraph()
G.add_edges_from([(1,2),(1,2),(3,4),(1,3)])
# Dump graph
with open("/path/to/file/multigraph.p", 'wb') as f:
pickle.dump(G, f)
# Load graph
with open("/path/to/file/multigraph.p", 'rb') as f: # notice the r instead of w
G_loaded = pickle.load(f)
Run Code Online (Sandbox Code Playgroud)
就如此容易。
[编辑]到pickle.dump图表列表:
# Dump List of graphs
l = [G, G_loaded]
with open("/path/to/file/multigraph.p", 'wb') as f:
pickle.dump(l, f)
# Load List of graphs
with open("/path/to/file/multigraph.p", 'rb') as f:
l_load = pickle.load(f)
Run Code Online (Sandbox Code Playgroud)
现在l_load[0]包含多重图G。