Python pickle 模块简介

pickle 模块实现用于序列化和反序列化 Python 对象结构的二进制协议。“pickling”是将 Python 对象层次结构转换为字节流的过程,“unpickling”是反向操作,即将字节流(来自二进制文件或类
似字节的对象)转换回对象层次结构。“pickling”也称为“序列化”“编组”或“扁平化”,而“unpickling”称为“反序列化”。为避免混淆,应尽量使用术语“pickling”和“unpickling”。
pickle 模块有两类函数 dump()和 load()分别执行“pickling” 和 “unpickling”操作。
pickle.dumps(obj, protocol=None, *, fix_imports=True)将一个 Python 对象转换成一个 bytes 类型的字节串对象。
pickle.dump(obj, file, protocol=None, *, fix_imports=True)将一个 Python 对象转换成一个 bytes 类型字节串对象,并保存到文件中。
pickle.loads(bytes_object, *, fix_imports=True, encoding=“ASCII”, errors=“strict”)将已经序列化(picked)的 bytes 类型字节串 bytes_object 恢复成 Python 类型对象。
pickle.load(file, *, fix_imports=True, encoding=“ASCII”, errors=“strict”)从打开的文件对象中读取已经序列化(picked)的 bytes 字节串,并恢复为 Python 类型对象。
其中的参数说明如下。

  • obj:要持久化保存的对象。
  • file:可以是一个以读/写模式打开的文件对象、一个 io.BytesIO 对象,或者其他自定义的满足条件的对象。对于函数 dump(),file 参数对象必须有一个 write()方法,该方法接收一个字节串作为参数。对于函数 load(),file 参数对象必须有一个 read()方法和 readline()方法,用于读取一定数量的字符或一行字符,read()方法和 readline()方法都返回读取的字节流。
  • bytes_object:表示一个字节对象。
  • protocol:这是一个可选的参数,默认为 0,如果设置为 1 或 True,则以高压缩的二进制格式保存持久化后的对象,否则以 ASCII 格式保存。
  • fix_imports:用于处理 Python3 和 Python2 的名字兼容性问题,可暂不考虑。
  • encoding:默认是“ASCII”,也可以是“‘bytes”(字节)。

pickle模块还提供两个专门的类,Pickler和Unpickler。这两个类分别有两个方法dump()和load()用于执行和上述函数类似的序列化(pickling)和反序列化(unpickling)操作。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值