Python:pickle模块学习

Posted 一只敲码的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python:pickle模块学习相关的知识,希望对你有一定的参考价值。

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对象

以上是关于Python:pickle模块学习的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记——基础篇第五周——json & pickle 模块

python标准库模块四Json模块和Pickle模块学习

21天学习python编程_pickle模块序列化与反序列化

21天学习python编程_pickle模块序列化与反序列化

Python3学习之路~5.7 Json & pickle 模块

python学习第七天--文件系统常用模块os,os.path,pickle