python pickle模块使用-将内存数据保存到文本中以及从文本中直接读取信息到内存中

本文主要探索以各种方式来保存 Python 对象,而不必将其转换成某种其它格式。

pickle 模块及其同类模块 cPickle 向 Python 提供了 pickle 支持。后者是用 C 编码的,它具有更好的性能,对于大多数应用程序,推荐使用该模块。我们将继续讨论 pickle ,但本文的示例实际是利用了 cPickle 。由于其中大多数示例要用 Python shell 来显示,所以先展示一下如何导入 cPickle ,并可以作为 pickle 来引用它:

>>> import cPickle as pickle

现在已经导入了该模块,接下来让我们看一下 pickle 接口。 pickle 模块提供了以下函数对: dumps(object) 返回一个字符串,它包含一个 pickle 格式的对象; loads(string) 返回包含在 pickle 字符串中的对象; dump(object, file) 将对象写到文件,这个文件可以是实际的物理文件,但也可以是任何类似于文件的对象,这个对象具有 write() 方法,可以接受单个的字符串参数; load(file) 返回包含在 pickle 文件中的对象。

示例1:使用dumps()和loads()  (不能直接保存到文本中,并且每次只能操作一个对象)注:对象可为字典,数组,列表等

  1. >>> import cPickle as pickle  
  2. >>> t1 = ('this is a string'42, [123], None)  
  • >>> t1  
  • ('this is a string'<
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pickle模块Python一个用于序列化和反序列化的模块,可以将Python对象转换为一种可存储或可传输的格式(如二进制或文本),以便在需要时恢复原始对象。pickle模块可以将Python对象序列化为字节流,然后将其写入文件或传输到网络上的其他进程。当需要时,可以从文件或网络读取字节流并使用pickle模块反序列化为原始对象。 使用pickle模块,可以将如列表、字典等Python对象序列化为二进制数据流,然后存储到文件,也可以从文件读取数据流,反序列化为原始对象。pickle模块的主要方法有dump和load,分别用于序列化和反序列化。其他常用方法还包括dumps和loads,它们与dump和load的区别在于,前者将对象序列化为字符串,而后者将字符串反序列化为对象。 下面是一个简单的示例,展示了如何使用pickle模块Python对象序列化为文件,并从文件反序列化为原始对象。 ``` import pickle # 将Python对象序列化为文件 data = {'name': 'Tom', 'age': 18} with open('data.pkl', 'wb') as f: pickle.dump(data, f) # 从文件反序列化为原始对象 with open('data.pkl', 'rb') as f: data = pickle.load(f) print(data) ``` 输出结果为: ``` {'name': 'Tom', 'age': 18} ``` 在实际应用pickle模块常用于保存和加载模型、缓存数据等。但需要注意的是,pickle模块并不是完全安全的,因为它可以执行任意代码,因此只应使用在可信的环境
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值