在机器学习中,我们常常需要把训练好的模型存储起来,这样在进行决策时直接将模型读出,而不需要重新训练模型,这样就大大节约了时间。Python提供的pickle模块就很好地解决了这个问题,它可以序列化对象并保存到磁盘中,并在需要的时候读取出来,任何对象都可以执行序列化操作。

Pickle模块中最常用的函数为:

(1)pickle.dump(obj, file, [,protocol])

函数的功能:将obj对象序列化存入已经打开的file中。

参数讲解:

obj:想要序列化的obj对象。
file:文件名称。
protocol:序列化使用的协议。如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本。
(2)pickle.load(file)

函数的功能:将file中的对象序列化读出。

参数讲解:

file:文件名称。
(3)pickle.dumps(obj[, protocol])

函数的功能:将obj对象序列化为string形式,而不是存入文件中。

参数讲解:

obj:想要序列化的obj对象。
protocal:如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本。
(4)pickle.loads(string)

函数的功能:从string中读出序列化前的obj对象。
     【注】 dump() 与 load() 相比 dumps() 和 loads() 还有另一种能力:dump()函数能一个接着一个地将几个对象序列化存储到同一个文件中,随后调用load()来以同样的顺序反序列化读出这些对象。

【代码示例】

pickleExample.py

#coding:utf-8
__author__ = 'MsLili'
#pickle模块主要函数的应用举例
import pickle
dataList = [[1, 1, 'yes'],[1, 1, 'yes'],[1, 0, 'no'],[0, 1, 'no'],[0, 1, 'no']]
dataDic = { 0: [1, 2, 3, 4],1: ('a', 'b'),2: {'c':'yes','d':'no'}}#使用dump()将数据序列化到文件中
fw = open('dataFile.txt','wb')
# Pickle the list using the highest protocol available.
pickle.dump(dataList, fw, -1)
# Pickle dictionary using protocol 0.
pickle.dump(dataDic, fw)
fw.close()#使用load()将数据从文件中序列化读出
fr = open('dataFile.txt','rb')
data1 = pickle.load(fr)
print(data1)
data2 = pickle.load(fr)
print(data2)
fr.close()#使用dumps()和loads()举例
p = pickle.dumps(dataList)
print( pickle.loads(p) )
p = pickle.dumps(dataDic)
print( pickle.loads(p) )

python中pickle模块讲解相关推荐

  1. python中pickle模块的用法_Python中json模块和pickle模块的简单介绍(附示例)

    本篇文章给大家带来的内容是关于Python中json模块和pickle模块的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Python中的json模块和pickl ...

  2. Python中Pickle模块的dump()方法和load()方法

    Python中的Pickle模块实现了基本的数据序列与反序列化. 一.dump()方法 pickle.dump(obj, file, [,protocol]) 注释:序列化对象,将对象obj保存到文件 ...

  3. python中pickle模块_Python pickle模块的用法

    串行化主要用于网络传输或者持久化.我们知道,网络上的数据都是字节流,如果希望将某个对象传送给远端的机器,首先就必须将其转换成字节流,然后才可以在网络上传输.文件也是字节流,如果希望将某个对象保存到文件 ...

  4. python中的pickle是什么意思_python中pickle模块浅析

    本章为大家介绍的模块,在python2的时候,并不受宠,主要的问题是存在安全漏洞,发现问题就要及时解决,因此在现在3版本中,已经得到了妥善的修复.pickle模块是序列化模块,主要应用的是在元组和列表 ...

  5. Python编程——pickle模块的使用详解(附实例)

    1.  模块的介绍 在介绍pickle模块之前,我们先了解一下python中的模块以及模块的分类,可以让我们对模块有更深入的了解. (1) 模块是什么: Python 模块(Module),是一个 P ...

  6. Python之re模块讲解及其案例举例

    Python之re模块讲解及其案例举例 文章目录 Python之re模块讲解及其案例举例 一.re模块简介 二.正则表达式的基本概念 1.正则表达式的语法介绍: 2.Python中的正则表达式模块 3 ...

  7. Python的pickle模块详解(包括优缺点及和JSON的区别)

    文章目录 一.pickle是什么? 1.pickle的优缺点 2.pickle和JSON的区别 3.pickle的应用总结 二.pickle的用法 1. pickle接口 2. pickle实例 结语 ...

  8. python sys模块作用_浅谈Python中的模块

    模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Mod ...

  9. python中Scipy模块求取积分

    python中Scipy模块求取积分的方法: SciPy下实现求函数的积分的函数的基本使用,积分,高等数学里有大量的讲述,基本意思就是求曲线下面积之和. 其中rn可认为是偏差,一般可以忽略不计,wi可 ...

最新文章

  1. 更换AppleWWDRCA.cer证书
  2. 数据库内核月报 - 2015 / 11-MySQL · 社区见闻 · OOW 2015 总结 MySQL 篇
  3. Database · 理论基础 · 关于一致性协议和分布式锁
  4. Linux磁盘扇区和内存页,技术|检查linux中硬盘损坏的扇区和区块
  5. libpcap-mmap分析(五)
  6. 笔记本电脑怎样连接打印机_佳能无线便携打印机上市
  7. oracle24550,ORA-24550 Signal Received Error From Client Based Application
  8. HashMap 排序
  9. 浏览器截图插件什么的弱爆了
  10. Android 系统(149)---如何初步定位异常关机问题
  11. 我的世界服务器怎么注册密码1.9,我的世界1.9.x /1.10服务器BEST CRAFT(最佳工艺服务器)...
  12. c语言实现数据结构中的链式表
  13. 当文科生遇见R语言,照样玩得转
  14. linux MySQL5.7 rpm安装
  15. 赫兹的单位换算_单位换算大全!
  16. 03.获取网页源代码
  17. Seaborn使用violinplot函数可视化分组小提琴图(violin plot)、使用inner函数设置在小提琴图中使用虚线显示分位数位置(inner = ‘quartile‘)
  18. 百度数据可视化Sugar BI — 表计算
  19. python打开autocad
  20. html用手机什么软件能编写,目前编写一款简单的手机应用APP一般用什么编程语言?...

热门文章

  1. 连续语音识别,continuous speech recognition,音标,读音,翻译,英文例句,英语词典
  2. .net5 不支持winform_.NET 5.0 RC 2 发布,正式版将在11月.NET Conf大会上发布
  3. ubuntu mysql自动补全_mysql自动化安装脚本(ubuntu and centos64)
  4. Vue前端路由~非常详细哦,不要错过
  5. LeetCode 123买卖股票的时机 III
  6. H.264 视频质量评价方法 (基于视频内容)
  7. mybatis开启log_mybatis使用spring-druid数据源连接池配置log4j打印sql语句以及开启监控平台...
  8. android skype 无法用蓝牙耳机,Skype发布更新 增加蓝牙耳机稳定性
  9. 配置kubeconfig文件实现kubectl多集群切换
  10. Helm 3 完整教程(九):Helm 函数讲解(3)类型转换函数、正则表达式函数