Python中 pickle 模块的 dump() 和 load() 方法详解
作者:实名吃香菜
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() 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!