如何使用Pickle在Python中保存对象

默认情况下,Pickle是Python库的一部分,只要您需要在用户会话之间保持持久性,它就是一个重要的模块。作为一个模块,pickle提供了在进程之间保存Python对象的功能。
无论您是为数据库、游戏、论坛或其他必须在会话之间保存信息的应用程序编程,pickle都有助于保存标识符和设置。pickle模块可以存储诸如布尔值、字符串和字节数组、列表、字典、函数等数据类型。

注意:pickle的概念也称为序列化、封送和扁平化。然而,关键始终是一样的——将对象保存到文件中以便以后检索。pickle通过将对象写入一个长字节流来实现这一点。

Python中的Pickle示例代码

要将对象写入文件,请使用以下语法中的代码:

import pickle 

object = Object() 

filehandler = open(filename, 'w') 

pickle.dump(object, filehandler)

以下是现实示例:

import pickle 

import math 

object_pi = math.pi 

file_pi = open('filename_pi.obj', 'w') 

pickle.dump(object_pi, file_pi)

此片段将object_pi的内容写入文件处理程序file_pi,而文件处理程序file_pi又绑定到执行目录中的文件filename_pi.obj。

要将对象的值还原到内存,请从文件中加载对象。假设尚未导入pickle以供使用,请先导入它:

import pickle 

filehandler = open(filename, 'r') 

object = pickle.load(filehandler)

以下代码恢复pi的值:

import pickle 

file_pi2 = open('filename_pi.obj', 'r') 

object_pi2 = pickle.load(file_pi2)

然后该对象再次准备好再次使用,这次是object_pi2。当然,如果您愿意,您可以重复使用原始名称。此示例为清晰起见使用不同的名称。

关于Pickle的事情

使用pickle模块时请记住以下事项:

pickle协议特定于Python - 它不保证是跨语言兼容的。您很可能无法传输信息以使其在Perl,PHP,Java或其他语言中有用。

不同版本的Python之间也不保证兼容性。存在不兼容性,因为并非每个Python数据结构都可以由模块序列化。

默认情况下,使用最新版本的pickle协议。除非您手动更改它,否则它仍然是这样。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值