1. pickle模块的作用
将字典、列表、字符串等对象进行持久化,存储到磁盘上,方便以后使用
2. pickle对象串行化
pickle模块将任意一个python对象转换成一系统字节的这个操作过程叫做串行化对象
3. pickle和cpickle
Python标准库提供pickle和cPickle模块。cPickle是用C编码的,在运行效率上比pickle要高,但是cPickle模块中定义的类型不能被继承(其实大多数时候,我们不需要从这些类型中继承,推荐使用cPickle)。cPickle和pickle的序列化/反序列化规则是一样的,使用pickle序列化一个对象,可以使用cPickle来反序列化。
4. pickle中常用的函数
(1)pickle.dump(obj, file, [,protocol])
作用:将要持久化的数据“对象”,保存到“文件”中,使用有3种协议,索引0为ASCII,1为旧式二进制,2为新式二进制协议,不同之处在于2要更高效一些(默认使用0协议)
(2)pickle.load(file)
作用:从“文件”中读取字符串,将他们反序列化转换为python的数据对象
(3)pickle.dumps(obj[, protocol])
作用:将obj对象序列化为string形式,而不是存入文件中
- obj:想要序列化的obj对象
- protocal:如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本
(4)pickle.loads(string)
作用:从string中读出序列化前的obj对象