python中有两个类似的:pickle与cPickle;两者的关系:“cPickle – A faster pickle”
  pickle模块中的两个主要函数是dump()和load()。dump()函数接受一个文件句柄和一个数据对象作为参数,把数据对象以特定的格式保存到给定的文件中。当我们使用load()函数从文件中取出已保存的对象时,pickle知道如何恢复这些对象到它们本来的格式。
  cPickle可以对任意一种类型的python对象进行序列化操作,比如list,dict,甚至是一个类的对象等。而所谓的序列化,我的粗浅的理解就是为了能够完整的保存并能够完全可逆的恢复。在cPickle中,主要有四个函数可以做这一工作,下面使用例子来介绍。
  
一、dump: 将python对象序列化保存到本地的文件。

>>> import cPickle
>>> data = range(1000)
>>> cPickle.dump(data,open("test\\data.pkl","wb"))
1
2
3
  dump函数需要指定两个参数,第一个是需要序列化的python对象名称,第二个是本地的文件,需要注意的是,在这里需要使用open函数打开一个文件,并指定“写”操作。

二、 load:载入本地文件,恢复python对象

>>> data = cPickle.load(open("test\\data.pkl","rb"))
1
  同dump一样,这里需要使用open函数打开本地的一个文件,并指定“读”操作

三、 dumps:将python对象序列化保存到一个字符串变量中

>>> data_string = cPickle.dumps(data)
1
四、 loads:从字符串变量中载入python对象

>>> data = cPickle.loads(data_string)
1
例子:

# -*- coding: utf-8 -*-
import pickle
# 也可以这样:
# import cPickle as pickle
obj = {"a": 1, "b": 2, "c": 3}
# 将 obj 持久化保存到文件 tmp.txt 中
pickle.dump(obj, open("tmp.txt", "w"))
# do something else ...
# 从 tmp.txt 中读取并恢复 obj 对象
obj2 = pickle.load(open("tmp.txt", "r"))
print obj2
1
2
3
4
5
6
7
8
9
10
11
例子:神经网络中模型参数的保存

if best_accuracy<val_accuracy:
best_accuracy = val_accuracy
cPickle.dump(model,open("./model.pkl","wb"))
---------------------
作者:深度学习思考者
来源:CSDN
原文:https://blog.csdn.net/u010402786/article/details/51161828
版权声明:本文为博主原创文章,转载请附上博文链接!

Python学习(四)cPickle的用法相关推荐

  1. python学习四(处理数据)

    python学习四(处理数据) head first python中的一个数据处理的例子 有四个U10选手的600米成绩,请取出每个选手跑的最快的3个时间.以下是四位选手的9次成绩 James 2-3 ...

  2. (零基础)入门python学习四步骤,附上Python全栈学习路线大刚!

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...

  3. Python Scapy(2.3.1)文档学习(四):高级用法

    ASN.1和SNMP 什么是ASN.1 ? 注意:这只是我对ASN.1的个人观点,我会尽可能的做简单的解释.至于更多的理论或者学术观点,我相信你会在互联网上找到更好的. ASN.1(抽象语法标记)是一 ...

  4. python学习四十四天(前端之HTML标签)

    今日主要内容: web标准 浏览器内核 HTML介绍,规范,结构详解 字体标签 排版标签 超链接 图片标签 列表标签 <ul>.<ol>.<dl> 表格标签 < ...

  5. python学习之字符串函数用法

    #1.find :返回查找字符串的下标位置.如果返回是-1,代表的是没有查到该字符.rfind :是从右边到左边username = 'hello yaya' index = username.fin ...

  6. Python学习四: 连接数据库 与 数据清理

    连接数据库 准备工作 楼主这里用的一个轻量级关系型数据库,MySQL (这里楼主安装MySQL的时候遇到了一个小问题,没有兼容服务器,根据这个帖子可以解决这个问题  分享 | 安装 mysql 报错 ...

  7. Python学习(四)后端开发框架django

    常见python web开发框架: web.py Django Pylons Tornado Bottle django菜鸟教程 一.django项目创建与启动 1.安装django pip inst ...

  8. docker学习(四)docker run用法

    目录 前言 一.参数列表 二.使用示例 前言 docker run 命令用于创建一个新的容器,启动一个新的进程,并为这个进程分配其独占的文件系统.网络资源等.通过参数设置可以覆盖镜像和容器的一些默认配 ...

  9. python学习005-----%d的各种用法

    %d在输出中表示十进制整数,用法很简单,不再举例说明.下面主要说明一些关于%d的变形: 1.%10d    %10d代表输出宽度为10个字符,如果输出的字符串不超过10,则在左边补空格:宽度超过10, ...

  10. Python学习-集合的常见用法

    st = [1,2,3,4,5] ct = [2,3,4,5,76] list = set(["name", 'list', 'try']) list2 = set([" ...

最新文章

  1. 使用MediaCodeC将图片集编码为视频
  2. linux中利用脚本编写数组,shell脚本编程之数组
  3. python函数-函数进阶
  4. ubuntu16.04编译boost for Android(boost 1.65)
  5. 戴琼海:人工智能的几点思考
  6. MySQL百万级数据库优化方案
  7. 三星手机即将获得完整的Linux发行版支持
  8. 大年三十整理的asp.net资料!(不得不收藏)
  9. mysql null处理_MySQL中处理Null时要注意两大陷阱
  10. AI工程师应聘要具备哪些能力?
  11. IrisSkin 皮肤
  12. 面向对象分析与设计中的基本事件处理的机制及其优缺点对比
  13. Linux curses库使用
  14. Go 语言如何自定义 linter(静态检查工具)
  15. Pytorch | 报错The given NumPy array is not writeable,and PyTorch does not support non-writeable tensor
  16. 稀土行业硫酸铵废水除钙镁
  17. 基于全志D1-H和XR806的名贵植物监控装置
  18. CASE WHEN怎么使用
  19. hualinux ros 1.13:RouterOS脚本(三):命令行结构
  20. h5端登录是什么意思_H5混合式APP开发实战案例终结篇

热门文章

  1. 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发
  2. 2022-2028年中国高阻隔片材基膜行业市场供需形势及前瞻分析报告
  3. Windows中配置java变量环境
  4. vb中可视对象的操作
  5. 漫谈Word2vec之skip-gram模型
  6. Python 正则表达式各种特殊符号 重点
  7. LeetCode简单题之整数的各位积和之差
  8. 向Relay添加算子
  9. 车联网,挖掘数据价值
  10. 生成性对抗网络技术实现