con*_*lee 2 python serialization pickle
我要解开磁盘上大小约为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)
Run Code Online (Sandbox Code Playgroud)
但这返回:
TypeError: argument must have 'read' and 'readline' attributes
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
pickle.load(file)需要一个类似文件的对象。而是使用:
从字符串读取腌制的对象层次结构。腌制对象表示形式之后的字符串中的字符将被忽略。
| 归档时间: |
|
| 查看次数: |
15533 次 |
| 最近记录: |