在机器学习中,我们常常需要把训练好的模型存储起来,这样在进行决策时直接将模型读出,而不需要重新训练模型,这样就大大节约了时间。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对象。

参数讲解:

  • string:文件名称。

【注】 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中xpath定位_xpath最新:关于python中的xpath解析定位_爱安网 LoveAn.com

    关于"xpath"的最新内容 聚合阅读 这篇文章主要介绍了关于python中的xpath解析定位,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧... 这篇文章主要 ...

  2. Python中的XML解析错误[Et.parse(xml) ‘gbk‘ codec can‘t decode byte]分析与解决

    Python中的XML解析错误[Et.parse(xml) 'gbk' codec can't decode byte]分析与解决 在Python开发中,我们经常会使用XML格式的数据来进行数据传输或 ...

  3. 【pickle】详解python中的pickle模块(常用函数、示例)

    1.序列化.反序列化介绍 序列化:把对象转换为字节序列的过程称为对象的序列化. 反序列化:把字节序列恢复为对象的过程称为对象的反序列化. 2.pickle模块说明 python中的pickle模块实现 ...

  4. Python中使用ElementTree解析xml

    在Python中,ElementTree是我们常用的一个解析XML的模块 1.导入ElementTree模块 from xml.etree import ElementTree as ET 2.初始化 ...

  5. python中使用pickle进行序列化

    python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...

  6. python 中的pickle库

    序列化:我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都 ...

  7. python中append函数解析_对python中的pop函数和append函数详解

    对python中的pop函数和append函数详解 pop()函数 1.描述 pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值. 语法 pop()方法语法: list. ...

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

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

  9. 【网络爬虫】python中的数据解析工具(re,bs4,xpath,pyquery)

    1.基础知识 1.1 正则(re) Regular Expression, 正则表达式, ⼀种使⽤表达式的⽅式对字符进⾏匹配的语法规则. ⽹⻚源代码本质上就是⼀个超⻓的字符串, 想从⾥⾯提取内容.⽤正 ...

  10. python中实现网页解析的三种工具分别是_对Python3 解析html的几种操作方式小结

    python3 能解析html吗 python3爬虫获取HTML文档时的问题.你羡慕小编一身潇洒无牵无挂小编却羡慕你有家有他有人等你回家 anaconda环境下python获取一个网站的HTML,不知 ...

最新文章

  1. 数组、结构体和共用体的长度计算?
  2. 深入浅出面向对象和原型【番外篇——重新认识new】
  3. win10系统中查找端口
  4. Android 开源项目android-open-project工具库解析之(一) 依赖注入,图片缓存,网络相关,数据库orm工具包,Android公共库...
  5. python阈值计算_python – 在numpy中计算超过阈值的数组值的最快方法
  6. mysql语言是数据的行数据_自己总结的一些my sql数据库的知识,需要的可以看一看...
  7. 如何将APP安装包发布到360手机助手上
  8. go语言爬虫 - TapTap用户都喜欢些什么游戏
  9. Python Web 框架-Django day07
  10. C# 将错误日志写到txt文件
  11. 研究生的压力应对与心理健康 测试题答案
  12. Retinanet训练自己的数据(1):数据准备
  13. ping 简单的测试 延时、抖动、丢包率
  14. WindowsPhone8常见问题及使用技巧
  15. Oracle 11gR2 dataguard搭建说明 --- duplicate方式
  16. 【MySQL】事务管理
  17. 湖北出台禁犬令PHP 新闻,湖北省拟出台最严禁狗令,禁止饲养包括中华田园犬在内的多种狗狗...
  18. 2012年3月19日
  19. 瓴羊 Quick BI 提供移动端自助分析整体解决方案,Fine BI、Smart BI 何时赶上?
  20. Unit 5: Windows Acquisition 5.1 Windows Acquisition Windows Forensic Imaging of Drives

热门文章

  1. JS重要知识点总结-不完善
  2. 强烈推荐 | 百度、阿里、腾讯 40 道面试题超全面总结
  3. Gvim 在进行文件对比时报cannot read or write temp files
  4. jquery 几个实用的小方法
  5. [导入][转] Eclipse中的快捷键
  6. 快速在MyEclipse中打开jsp类型的文件
  7. idea 导入spring 源码 踩坑记总结整理
  8. 解决navicat连接不上mysql8
  9. 安装linux-mysql-yum方式
  10. MapReduce学习要点