python pickle

1.pickle是python语言的一个标准模块,安装python后已包含pickle库,不需要单独再安装,pickle模块实现了基本的数据序列化和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。

2.pickle模块有两类主要的接口,即序列化和反序列化

3.序列化: pickle.dump(), Pickler(file, protocol).dump(obj), pickle.dumps()

序列化的方法为 pickle.dump(),该方法的相关参数如下:
pickle.dump(obj, file, protocol=None,*,fix_imports=True), 一般protocol使用默认值即可,
该方法实现的是将序列化后的对象obj以二进制形式写入文件file中,进行保存。它的功能等同于 Pickler(file, protocol).dump(obj)
关于参数file,有一点需要注意,必须是以二进制的形式进行操作(写入)

import pickle
with open('svm_model_iris.pkl', 'wb') as f:
    pickle.dump(svm_classifier, f)

file为’svm_model_iris.pkl’,并且以二进制的形式(’wb’)写入。

pickle.dumps()方法的参数如下:
pickle.dumps(obj, protocol=None,*,fix_imports=True),读取的时候,参数protocol是自动选择的,load()方法中没有这个参数
pickle.dumps()方法跟pickle.dump()方法的区别在于,pickle.dumps()方法不需要写入文件中,它是直接返回一个序列化的bytes对象。

反序列化: pickle.load(), Unpickler(file).load(), pickle.loads()

4.序列化的方法为 pickle.load(),该方法的相关参数如下:
pickle.load(file, *,fix_imports=True, encoding=”ASCII”. errors=”strict”)
该方法实现的是将序列化的对象从文件file中读取出来。它的功能等同于 Unpickler(file).load()
关于参数file,有一点需要注意,必须是以二进制的形式进行操作(读取)

import pickle
with open('svm_model_iris.pkl', 'rb') as f:
    model = pickle.load(f)

file为’svm_model_iris.pkl’,并且以二进制的形式(’rb’)读取。

pickle.loads()方法的参数如下:
pickle.loads(bytes_object, *,fix_imports=True, encoding=”ASCII”. errors=”strict”)
pickle.loads()方法跟pickle.load()方法的区别在于,pickle.loads()方法是直接从bytes对象中读取序列化的信息,而非从文件中读取。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值