一直想找个机会好好学习下这块的知识,但是毕竟实践出真知,下面的就按照我自己使用过的一点点补充吧^^
pickle 存储对象
项目中常用pickle,不了解前以为是多么高大上的东西,了解之后发现并不神秘,用一句话概括就是持久化操作。之前做java那么久,还是第一次接触python的持久化操作,明显还是跟java的持久化机制差了一大截。
虽然简单,但是pickle真的很好用,因为他可以保存训练了一半的模型,下次接着训练!厉害吧!
import Cpickle as pickle #python2
import pickle #python3
怎么用 dump and load:
基本接口:
pickle.dump(obj, file, [,protocol])
注解:将对象obj保存到文件file中去。
protocol为序列化使用的协议版本,0:ASCII协议,所序列化的对象使用可打印的ASCII码表示;1:老式的二进制协议;2:2.3版本引入的新二进制协议,较以前的更高效。其中协议0和1兼容老版本的python。protocol默认值为0。
file:对象保存到的类文件对象。file必须有write()接口, file可以是一个以’w’方式打开的文件或者一个StringIO对象或者其他任何实现write()接口的对象。如果protocol>=1,文件对象需要是二进制模式打开的。pickle.load(file)
注解:从file中读取一个字符串,并将它重构为原来的python对象。
file:类文件对象,有read()和readline()接口。