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学习四(处理数据)

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

  2. 【转】Python学习---超详细字符串用法大全,好文推荐!

    来自:Python编程与实战(微信号:pthon1024),作者:Jerryning 没有办法转,整个复制下来了 本文要点 字符串拼接 拆分含有多种分隔符的字符串 判读字符串a是否以字符串b开头或结尾 ...

  3. Python学习(四) Python数据类型:序列(重要)

    插播一下,先了解一下Python的数据类型,Python现有的数据类型有好多,最重要的有列表.元组.字典 列表:我觉得可以对应java中的数组 list=['physics', 'chemistry' ...

  4. Python学习(四):模块入门

    1.模块介绍 模块:代码实现的某个功能的集合 模块分类: 自定义模块 内置标准模块 开源模块 模块的常用方法: 是否为主文件:__name__ == '__main__' 如果是直接执行的某程序,那么 ...

  5. Python学习四|变量、对象、引用的介绍

    变量 变量创建:一个变量也就是变量名,就像a,当代码第一次赋值时就创建了它.之后的赋值将会改变已创建的变量名的值,从技术上讲,Python在代码运行之前先检测变量名,可以当成是最初的赋值创建了变量. ...

  6. python学习——while True的用法

    在学习过程中,经常能遇到采用while True的用法.下面以一个例子进行说明: 建立一个用户登录系统,用户输入用户名和密码,如果正确就可以进入系统. 1.我自己最开始的写法: d = {} #数据库 ...

  7. python学习笔记-list的用法

    1.list的定义 list = [] list = [1,2,'a','b'](list中的元素不一定是一个类型) 2.list的操作 1)list.append(value) 2)list.ins ...

  8. Python学习系列之format用法

    format是代替%s格式的方法 不需要理会数据类型的问题,在%s方法中的%s只能代替字符串类型 填充方式十分灵活,对其方式十分强大 format填充字符串 通过位置来填充字符串 #format会把参 ...

  9. Python学习笔记(二):条件控制语句与循环语句及常用函数的用法

    总结的内容: 1.条件控制语句 2.while循环语句 3.for循环语句 4.函数的用法 一.条件控制语句 1.介绍 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决 ...

随机推荐

  1. 学习写Js的动画

    说起前端,要说动画是最有乐子的东西了.玩好动画一定会很轻易的享受到前端的乐趣. 这里我不会讲述什么css3 的 transform animation keyframes,也不会讲述jquery的an ...

  2. Kubernetes 基于 ubuntu18.04 手工部署 (k8s)

    由于工作的需要, 手工部署一个 Kubernetes 环境(k8s).(以前都是云上搞定,拿来用) 习惯把这种工作记录下来,自己备查也和别人分享 网上相关文章很多, 我也参考了很多,这里推荐一个 链接 ...

  3. netbeans调试webapp 只能用localhost访问

    etbeans 我的电脑是192.168.0.2,用这个地址访问 网上有人说,分两种情况 此问题分两种情况: 1. 可以用127.0.0.1访问 2. 不能用127.0.0.1访问 针对第一种情况,我 ...

  4. 超高频率问题之信息: Illegal access: this web application instance has been stopped already. Could not load . The eventual following stack trace is caused by an error thrown for debugging purposes as well as

    出现频率非常高,目前还不确定具体是什么原因导致

  5. mysql5 msi安装版

    有安装版为啥要用解压版? 搞不懂为啥大佬们都喜欢解压版? http://ftp.ntu.edu.tw/MySQL/Downloads/MySQLInstaller/mysql-installer-co ...

  6. Linux下安装jboss并设置自启动服务

    一.JDK和JBOSS下载jdk:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm ...

  7. IO流8 --- 使用FileReader和FileWriter实现文本文件的复制 --- 技术搬运工(尚硅谷)

    @Test public void test4(){ FileReader fr = null; FileWriter fw = null; try { fr = new FileReader(&qu ...

  8. PHP快速导出Excel文件 (采用xlsx Writer)

    <?php include_once("xlsxwriter.class.php"); ini_set('display_errors', 0); ini_set('log_ ...

  9. 2019.9.19 csp-s模拟测试47 反思总结

    思路接近正解?都想到了?这都是借口呀. 没有用的,往前走吧. T1:Emotional Flutter 我的做法和题解不太一样,我把s放在最后考虑了. 因为出发以后步幅是一样的,所以每一个黑条可以ba ...

  10. leetcode 235-290 easy

    235. Lowest Common Ancestor of a Binary Search Tree 公共的祖先必定大于左点小于右点,否则不断递归到合适. class Solution { publ ...