Python中 pickle 模块的 dump() 和 load() 方法详解

 更新时间:2024年04月30日 10:46:29   作者:实名吃香菜  
Python 的 pickle 模块用于实现二进制序列化和反序列化,一个对象可以被序列化到文件中,然后可以从文件中恢复,这篇文章主要介绍了Python中 pickle 模块的 dump() 和 load() 方法详解,需要的朋友可以参考下

Python 的 pickle 模块用于实现二进制序列化和反序列化。一个对象可以被序列化到文件中,然后可以从文件中恢复。

(1)pickle.dump()

定义: pickle.dump(obj, file, protocol=None, fix_imports=True, buffer_callback=None) 将 Python 对象序列化并写入到文件对象。

  • 参数:
    • obj (必需,任意 Python 对象): 要被序列化的对象。
    • file (必需,file object): 一个具有 write() 方法的文件类对象,pickle 数据将被写入到这个对象中。
    • protocol (可选,整数): 指定 pickle 使用的协议版本,可以是 0 到最高支持的协议。默认是默认的协议。
    • fix_imports (可选,布尔值): 如果为 True,并且 protocol 小于 3,pickle 将尝试将新的 Python 3.x 名称映射到 Python 2.x 中的模块名称。
    • buffer_callback (可选,callable): 用于优化大型对象序列化的回调函数。
  • 返回值: 无返回值。
  • 用途: 将 Python 对象序列化保存到文件中。
  • 代码示例:
​​​​​​​
import pickle
# 假设我们有一个字典对象
data = {'a': [1, 2.0, 3, 4+6j],
        'b': ('string', u'Unicode string'),
        'c': None}
# 打开一个文件用于写入
with open('data.pickle', 'wb') as f:
    # 将字典对象序列化并保存到文件
    pickle.dump(data, f)

(2)pickle.load()

定义: pickle.load(file, *, fix_imports=True, encoding='ASCII', errors='strict', buffers=None) 从文件对象中读取序列化的数据,并将其反序列化为 Python 对象。

  • 参数:
    • file (必需,file object): 一个具有 read() 和 readline() 方法的文件类对象,将从该对象中读取并反序列化 pickle 数据。
    • fix_imports (可选,布尔值): 是否为了兼容 Python 2.x 修复导入问题。
    • encoding (可选,字符串): 用于解码 8 位字符串的编码。
    • errors (可选,字符串): 设置如何处理编解码错误。
    • buffers (可选,列表): 包含用于优化序列化的缓冲区的列表。
  • 返回值: 反序列化后的 Python 对象。
  • 用途: 从文件中恢复 Python 对象。
  • 代码示例:
import pickle
# 打开含有序列化数据的文件
with open('data.pickle', 'rb') as f:
    # 读取并反序列化数据
    data_loaded = pickle.load(f)
    print(data_loaded)

到此这篇关于Python中 pickle 模块的 dump() 和 load() 方法详解的文章就介绍到这了,更多相关Python dump() 和 load() 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python使用opencv切割图片白边

    python使用opencv切割图片白边

    这篇文章主要为大家详细介绍了python使用opencv切割图片的白边,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一
    2021-09-09
  • Python+uiautomator2实现手机锁屏解锁功能

    Python+uiautomator2实现手机锁屏解锁功能

    python-uiautomator2封装了谷歌自带的uiautomator2测试框架,提供便利的python接口,这篇文章给大家介绍使用Python+uiautomator2实现手机锁屏解锁(期望输入的锁屏密码,基于滑动解锁),感兴趣的朋友一起看看吧
    2021-04-04
  • Python爬虫之模拟知乎登录的方法教程

    Python爬虫之模拟知乎登录的方法教程

    在爬虫过程中,有些页面在登录之前是被禁止抓取的,这个时候就需要模拟登陆了,下面这篇文章主要给大家介绍了利用Python爬虫模拟知乎登录的方法教程,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-05-05
  • pytorch 运行一段时间后出现GPU OOM的问题

    pytorch 运行一段时间后出现GPU OOM的问题

    这篇文章主要介绍了pytorch 运行一段时间后出现GPU OOM的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Python 利用OpenCV给照片换底色的示例代码

    Python 利用OpenCV给照片换底色的示例代码

    这篇文章主要介绍了Python 利用OpenCV给照片换底色,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • python套接字socket通信

    python套接字socket通信

    这篇文章主要介绍了python套接字socket通信,python标准库中内置了底层网络接口socket,以下代码均默认from socket import *,下文很多详细内容需要的小伙伴可以参考一下
    2022-04-04
  • python类继承用法实例分析

    python类继承用法实例分析

    这篇文章主要介绍了python类继承用法实例分析,以实例的形式详细讲述了Python类继承的实现方法及相关的工作原理,非常实用,需要的朋友可以参考下
    2014-10-10
  • Django项目单字段区间查询的实现

    Django项目单字段区间查询的实现

    在Django项目中会碰到一些需求就是查询某个表中的一些字段从某日到某日的数据,你可以像在SQL中那样使用SELECT语句来查找指定字段,本文就来介绍两种方法,感兴趣的可以了解一下
    2023-10-10
  • Python基于wordcloud及jieba实现中国地图词云图

    Python基于wordcloud及jieba实现中国地图词云图

    这篇文章主要介绍了Python基于wordcloud及jieba实现中国地图词云图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Python全栈之学习JQuery

    Python全栈之学习JQuery

    这篇文章主要为大家介绍了Python全栈之JQuery,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01

最新评论