美文网首页
Python知识点学习掌握,pickle模块怎么梳理

Python知识点学习掌握,pickle模块怎么梳理

作者: Python小辰 | 来源:发表于2019-08-15 22:09 被阅读0次

    怎么掌握Python的知识点?pickle模块怎么梳理?在学习Python的时间里,会逐渐的知道什么是Python,知道int、str、dict、list、bool等Python数据类型,学习function、class与对象这一些比较抽象的知识。接下来就给大家分享一下有关pickle 模块的知识点。

    在Python中,用于序列化的模块有两个:json和pickle。

    json主要是用于字符串和Python数据类型间进行转换,提供四个功能:dumps、dump、loads、load。pickle:用于Python特有的类型和Python的数据类型间进行转换,同样提供四个功能:dumps、dump、loads、load。Python中几乎所有的数据类型(列表、字典、集合、类等)都可以用pickle来序列化。

    pickle的特点如下:

    1、只能在Python中使用,只支持Python的基本数据类型。

    2、可以处理复杂的序列化语法。(例如自定义的类的方法,游戏的存档等)

    3、序列化的时候,只是序列化了整个序列对象,而不是内存地址。

    pickle模块是以二进制的形式序列化后保存到文件中(保存文件的后缀为“.pkl”),不能直接打开进行预览。而python的另一个序列化标准模块json,则是human-readable的,可以直接打开查看(例如在notepad++中查看)。

    pickle模块有两类主要的接口,即序列化和反序列化。

    序列化操作包括:

    1)pickle.dump(),参数如下:

    pickle.dump(obj, file, protocol=None,*,fix_imports=True)

    该方法实现的是将序列化后的对象obj以二进制形式写入文件file中,进行保存。它的功能等同于 Pickler(file, protocol).dump(obj)。

    序列化方法pickle.dumps(),参数如下:

    pickle.dumps(obj, protocol=None,*,fix_imports=True)

    pickle.dumps()方法跟pickle.dump()方法的区别在于,pickle.dumps()方法不需要写入文件中,它是直接返回一个序列化的bytes对象。

    2)Pickler(file, protocol).dump(obj)

    pickle模块提供了序列化的面向对象的类方法,即 class pickle.Pickler(file, protocol=None,*,fix_imports=True),Pickler类有dump()方法。Pickler(file, protocol).dump(obj) 实现的功能跟 pickle.dump() 是一样的。

    反序列化操作包括:

    1)pickle.load(),参数如下:

    pickle.load(file, *,fix_imports=True, encoding=”ASCII”. errors=”strict”)

    该方法实现的是将序列化的对象从文件file中读取出来。它的功能等同于 Unpickler(file).load()。

    pickle.loads(),参数如下:

    pickle.loads(bytes_object, *,fix_imports=True, encoding=”ASCII”. errors=”strict”)

    pickle.loads()方法跟pickle.load()方法的区别在于,pickle.loads()方法是直接从bytes对象中读取序列化的信息,而非从文件中读取。

    2)Unpickler(file).load()

    pickle模块提供了反序列化的面向对象的类方法,即 class pickle.Unpickler(file, *,fix_imports=True, encoding="ASCII". errors="strict"),Pickler类有load()方法。Unpickler(file).load() 实现的功能跟 pickle.load() 是一样的。

    小编推荐一个学Python的学习裙【  126,427,833  】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

    在学习Python的过程,会从一开始的新手到能够熟练地自主的敲一些简单的代码,慢慢的进步非常大。因此,选择专业的学习会让自己更快的进入Python开发行业。

    相关文章

      网友评论

          本文标题:Python知识点学习掌握,pickle模块怎么梳理

          本文链接:https://www.haomeiwen.com/subject/bqatsctx.html