Python学习(四)cPickle的用法
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的用法相关推荐
- python学习四(处理数据)
python学习四(处理数据) head first python中的一个数据处理的例子 有四个U10选手的600米成绩,请取出每个选手跑的最快的3个时间.以下是四位选手的9次成绩 James 2-3 ...
- (零基础)入门python学习四步骤,附上Python全栈学习路线大刚!
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...
- Python Scapy(2.3.1)文档学习(四):高级用法
ASN.1和SNMP 什么是ASN.1 ? 注意:这只是我对ASN.1的个人观点,我会尽可能的做简单的解释.至于更多的理论或者学术观点,我相信你会在互联网上找到更好的. ASN.1(抽象语法标记)是一 ...
- python学习四十四天(前端之HTML标签)
今日主要内容: web标准 浏览器内核 HTML介绍,规范,结构详解 字体标签 排版标签 超链接 图片标签 列表标签 <ul>.<ol>.<dl> 表格标签 < ...
- python学习之字符串函数用法
#1.find :返回查找字符串的下标位置.如果返回是-1,代表的是没有查到该字符.rfind :是从右边到左边username = 'hello yaya' index = username.fin ...
- Python学习四: 连接数据库 与 数据清理
连接数据库 准备工作 楼主这里用的一个轻量级关系型数据库,MySQL (这里楼主安装MySQL的时候遇到了一个小问题,没有兼容服务器,根据这个帖子可以解决这个问题 分享 | 安装 mysql 报错 ...
- Python学习(四)后端开发框架django
常见python web开发框架: web.py Django Pylons Tornado Bottle django菜鸟教程 一.django项目创建与启动 1.安装django pip inst ...
- docker学习(四)docker run用法
目录 前言 一.参数列表 二.使用示例 前言 docker run 命令用于创建一个新的容器,启动一个新的进程,并为这个进程分配其独占的文件系统.网络资源等.通过参数设置可以覆盖镜像和容器的一些默认配 ...
- python学习005-----%d的各种用法
%d在输出中表示十进制整数,用法很简单,不再举例说明.下面主要说明一些关于%d的变形: 1.%10d %10d代表输出宽度为10个字符,如果输出的字符串不超过10,则在左边补空格:宽度超过10, ...
- Python学习-集合的常见用法
st = [1,2,3,4,5] ct = [2,3,4,5,76] list = set(["name", 'list', 'try']) list2 = set([" ...
最新文章
- 使用MediaCodeC将图片集编码为视频
- linux中利用脚本编写数组,shell脚本编程之数组
- python函数-函数进阶
- ubuntu16.04编译boost for Android(boost 1.65)
- 戴琼海:人工智能的几点思考
- MySQL百万级数据库优化方案
- 三星手机即将获得完整的Linux发行版支持
- 大年三十整理的asp.net资料!(不得不收藏)
- mysql null处理_MySQL中处理Null时要注意两大陷阱
- AI工程师应聘要具备哪些能力?
- IrisSkin 皮肤
- 面向对象分析与设计中的基本事件处理的机制及其优缺点对比
- Linux curses库使用
- Go 语言如何自定义 linter(静态检查工具)
- Pytorch | 报错The given NumPy array is not writeable,and PyTorch does not support non-writeable tensor
- 稀土行业硫酸铵废水除钙镁
- 基于全志D1-H和XR806的名贵植物监控装置
- CASE WHEN怎么使用
- hualinux ros 1.13:RouterOS脚本(三):命令行结构
- h5端登录是什么意思_H5混合式APP开发实战案例终结篇