存储对象:pickle模块和cPickle模块
cPickle是用C编写的,比pickle运行效率高,cPickle模块中定义的类型不能被继承。推荐使用cPickle。它们的用法基本完全相同。
可以使用下面的语句:
import cPickle as pickle
将内存中的对象转换成为文本流:
picklestring = pickle.dumps(summer)
# 随后使用普通的文本存储方法将picklestring字符串储存在文件
将转换成文件流和存储到文件放到一起:
picklestring = pickle.dump(Bird(), open(‘bird.pkl’, ‘w’))
重建对象:
bird = pickle.load(open(‘bird.pkl’, ‘r’))
遇到的错误
报错信息:
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0x90 in position 614: ordinal not in range(128)
coding:
import pickle
import gzip
f = gzip.open(‘data/mnist.pkl.gz’, ‘rb’)
training_data, validation_data, test_data = pickle.load(f)
修改为:
training_data, validation_data, test_data = pickle.load(f, encoding=’iso-8859-1’)