我正在解开磁盘上大约 1GB 大小的 NetworkX 对象。虽然我将它保存为二进制格式(使用协议 2),但解封该文件需要很长时间——至少半小时。我运行的系统有足够的系统内存(128 GB),所以这不是瓶颈。
我在这里读过,酸洗可以通过首先将整个文件读入内存然后解开它来加快酸洗(那个特定的线程是指我没有使用的python 3.0,但这一点在python 2.6中仍然应该是正确的)。
我如何先读取二进制文件,然后解压它?我试过了:
import cPickle as pickle
f = open("big_networkx_graph.pickle","rb")
bin_data = f.read()
graph_data = pickle.load(bin_data)
但这会返回:
TypeError: argument must have 'read' and 'readline' attributes
有任何想法吗?