有时候我们需要从内存中保存一些内容到磁盘空间上,以便下一次我们可以直接从中间的结果开始,这个时候pickle 是很有用处的。
pickle 的用法很简单,基本上用到的就是两个函数,一个是dump,一个是load。
import pickle
a = [1,2,3]
b = [4,5,6]
with open('dump.pkl', 'wb') as f:
pickle.dump(
{
'value_a': a,
'value_b': b
}, f, pickle.HIGHEST_PROTOCOL)
with open('dump.pkl', 'rb') as f:
pickle_data = pickle.load(f)
c = pickle_data['value_a']
d = pickle_data['value_b']
print(c)
print(d)
很好,这样a 和b被写入到了序列化文件dump.pkl中,而c和d 又从这个文件中加载了回来。
try:
import cPickle as pickle
except ImportError:
import pickle
2. pickle 不是原子化操作,所以在多线程大规模并行化的时候可能有问题。