有时候我们需要从内存中保存一些内容到磁盘空间上,以便下一次我们可以直接从中间的结果开始,这个时候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 pickle2. pickle 不是原子化操作,所以在多线程大规模并行化的时候可能有问题。