python核心模块之pickle和cPickle讲解

Python3 cPickle模块:高效地序列化Python对象 cPickle模块提供了一些特殊的功能,可以自定义对象的序列化和反序列化过程。例如,可以使用copy_reg模块注册自定义的序列化和反序列化函数。序列化是将Python对象转换为二进制格式的过程,可以将其存储到文件或者数据库中。在Python中,cPickle模块提供了高效的序列化和反序列化Python对象的方法。总之,Python3 cPickle模块是一个非常有用的工具,可以帮助我们高效地序列化和反序列化Python对象。上面的代码中,我们从文件中读取数据,反序列化为Python对象,并打印该对象。 阅读详情

pickle模块使用的数据格式是python专用的,并且不同版本不向后兼容,同时也不能被其他语言识别。要和其他语言交互,可以使用内置的json包。cPickle是pickle的一个更快的C语言编译版本。pickle和cPickle相当于java的序列化和反序列化操作。

常采用这样的方式使用:

import cPickle as pickle

pickle.dump(obj,f)
pickle.dumps(obj,f)
pickle.load(f)
pickle.loads(f)


使用pickle模块你可以把Python对象直接保存到文件,而不需要把他们转化为字符串,也不用底层的文件访问操作把它们写入到一个二进制文件里。 pickle模块会创建一个python语言专用的二进制格式,你基本上不用考虑任何文件细节,它会帮你干净利落地完成读写独享操作,唯一需要的只是一个合法的文件句柄。



pickle模块中的两个主要函数是dump()和load():

dump()函数接受一个文件句柄和一个数据对象作为参数,把数据对象以特定的格式保存到给定的文件中。当我们使用load()函数从文件中取出已保存的对象时,pickle知道如何恢复这些对象到它们本来的格式。

dumps()函数执行和dump() 函数相同的序列化。取代接受流对象并将序列化后的数据保存到磁盘文件,这个函数简单的返回序列化的数据。


loads()函数执行和load() 函数一样的反序列化。取代接受一个流对象并去文件读取序列化后的数据,它接受包含序列化后的数据的str对象, 直接返回的对象。

代码示例:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@version: python2.7.8 
@author: XiangguoSun
@contact: sunxiangguodut@qq.com
@file: pickle_demo.py
@time: 2017/2/5 15:28
@software: PyCharm
"""
import cPickle as pickle

obj = 123, "abcdedf", ["ac", 123], {"key": "value", "key1": "value1"}
print obj# 输出:(123, 'abcdedf', ['ac', 123], {'key1': 'value1', 'key': 'value'})  

# 序列化到文件  
with open(r"d:\a.txt", "r+") as f:
    pickle.dump(obj, f)
    
with open(r"d:\a.txt") as f:
    print pickle.load(f)# 输出:(123, 'abcdedf', ['ac', 123], {'key1': 'value1', 'key': 'value'})  

# 序列化到内存(字符串格式保存),然后对象可以以任何方式处理如通过网络传输  
obj1 = pickle.dumps(obj)
print type(obj1)# 输出:<type 'str'>  
print obj1# 输出:python专用的存储格式  

obj2 = pickle.loads(obj1)
print type(obj2)# 输出:<type 'tuple'>  
print obj2# 输出:(123, 'abcdedf', ['ac', 123], {'key1': 'value1', 'key': 'value'})





python3 cPickle 阅读详情

相关推荐

【遥感数字图像处理(朱文泉)】各章博文链接汇总及思维导图

遥感数字图像处理(北京师范大学朱文泉教授)课程各章博文笔记汇总,及各章节思维导图

甜子yu的博客 2623

python pickle/cPickle模块

序列化(picking): 把变量从内存中变成可存储或传输的过程称为序列化,序列化之后,就可以把序列化的对象写入磁盘,或者传输给其他设备; 反序列化(unpickling):相应的,把变量的内容从序列化的对象重新读到内存里的过程称为反序列化; python中有两个模块可以实现对象的序列化,pickle和cPickle(注意P大写),cPickle是用C语言实现...

weixin_30314631的博客 738

艾德克斯电子负载IT8510维修

2年前从朋友那收了这台艾德克斯电子负载,收来的时候上面的编码器就不好用,就是旋转的时候一会增加一会减小这种现象,不过其他功能都是正常的,自己也就将就用这。直到昨天,电子负载开机发现空载的时候电压不是0,开始有mV级的跳动,心想这个不正常。又测试了一下恒流功能,已经不能正常工作了。

mainbanp 4652

Python pickle模块学习(超级详细)

Python pickle模块学习

快递小可的博客 17万+

保姆级教程:用海康威视老版存储服务器+IVMS-4200搭建本地监控录像(附软件获取与开机自启)

最近在帮朋友搭建一套小型监控系统时,遇到了一个颇具挑战性的问题:手头有几台海康威视网络摄像头,但官方已经下架了配套的存储服务器软件。经过一周的摸索和测试,终于找到了一套可靠的解决方案。本文将完整分享从软件获取到系统稳定运行的全过程,特别适合那些不想额外购买NVR设备,又需要本地存储监控录像的个人用户或小型企业IT管理员。

weixin_30553777的博客 515

DFT知识点扫盲——DFT scan chain

实际在项目中synccell一般直接上ULVT,既然是SDF,就是带Scan接口的DFF,SN (set negtive)是低置位,RP(reset positive)是高复位,既没有SN也没有RP的就是无复位寄存器。1:定义:满足可测试性设计(DFT),将设计中所有的触发器连接到一条或者若干条链上,称为scan chain,将一个复杂的时序电路转换为简单的组合电路进行测试,这一步是在逻辑综合(DC)中实现。当SE=1当SI=1时,电路进入scan状态,当SI=0时,电路工作在normal状态。

笨蛋大乌龟的博客 4936

python中pickle模块的用法_Python核心模块之pickle和cPickle讲解

pickle模块使用的数据格式是python专用的,并且不同版本不向后兼容,同时也不能被其他语言说识别。要和其他语言交互,可以使用内置的json包使用pickle模块你可以把Python对象直接保存到文件,而不需要把他们转化为字符串,也不用底层的文件访问操作把它们写入到一个二进制文件里。pickle模块会创建一个python语言专用的二进制格式,你基本上不用考虑任何文件细节,它会帮你干净利落地完成...

weixin_33219985的博客 314

嵌入式开发之瑞芯微RK356x--基本环境搭建

嵌入式环境搭建

NexyHO的博客 617

cpickle支持的python版本_python核心模块之pickle和cPickle讲解

pickle模块使用的数据格式是python专用的,并且不同版本不向后兼容,同时也不能被其他语言说识别。要和其他语言交互,可以使用内置的json 包使用pickle模块你可以把Python对象直接保存到文件,而不需要把他们转化为字符串,也不用底层的文件访问操作把它们写入到一个二进制文件里。 pickle模块会创建一个python语言专用的二进制格式,你基本上不用考虑任何文件细节,它会帮你干净利落地...

weixin_39799290的博客 226

【Pix4d精品教程】Pix4d空三后处理:点云分类与过滤、DSM精编生成DEM、生成等高线案例详解

本文详细介绍了利用Pix4D软件进行无人机摄影测量后处理的关键步骤,主要包括点云分类与分配、DEM精编生成和等高线绘制三个核心环节。首先通过点云分类区分地面、植被等7种地物类型,然后通过点云分配将地面点云归并到Ground类别,剔除植被等干扰要素。随后重新运行DSM生成步骤获取精确DEM,最后在附加输出中设置参数生成标准等高线。文中配有详细的操作截图和注意事项,如处理前需备份原始DSM/DOM数据,并解释了DEM与DSM的本质区别。该教程为无人机摄影测量内业处理提供了完整的解决方案。

智慧空间实验室 1万+

Matlab:Matlab 软件学习之Matlab内置的各种系统的简介、案例应用(基于Simulink模糊控制仿真/二阶瞬态震荡电路案例)之详细攻略

选择左上角要编辑变量的图标,给定当前变量的论域Range,设置隶属函数类型type(八种隶属函数类型以供选择),最后选中某个隶属度函数(选中为红色),移动绘图区的每个隶属度函数的三个端点(竖向为权重)。(1)、首先在模糊规则编辑器左边选择一个输入变量,并选中它的一个语言值(隶属函数),然后编辑器右边选择一个输出变量,并选中它的一个语言值(隶属函数),然后将这种关系添加到模糊规则中。制定完成后,会形成模糊规则矩阵,系统会根据模糊输入量(如r1、r2),经过模糊规则(如45条),进而确定输出量(Y1、Y2)。

走向CTO之路 1123

python 核心模块之pickle和cPickle讲解

pickle模块使用的数据格式是python专用的,并且不同版本不向后兼容,同时也不能被其他语言说识别。要和其他语言交互,可以使用内置的json 包使用pickle模块你可以把Python对象直接保存到文件,而不需要把他们转化为字符串,也不用底层的文件访问操作把它们写入到一个二进制文件里。 pickle模块会创建一个python语言专用的二进制格式,你基本上不用考虑任何文件细节,它会帮你干净利落地

wcc526的专栏 1037

Claude Code 常见安装失败问题与解决办法

摘要: Claude Code安装失败通常与环境、网络和权限问题有关,而非软件本身。主要误区包括:命令未识别(需检查PATH和终端重启)、网络连接失败(终端代理配置)、权限不足(系统安全限制)及账号认证问题。首次使用应避免复杂任务,建议从基础功能测试开始。快速自检可按终端重启→命令识别→网络→代理→权限→账号状态的顺序排查。理顺终端、网络和权限后,Claude Code运行将更稳定。 (150字)

sg_knight的专栏 6700

Scrapy官网tutorial、Requests官网文档、lxml官方文档、XPath语法、python核心模块pickle和cPickle讲解

博主比较懒,参考下面链接 lxml官方文档:  http://lxml.de/tutorial.html XPath语法:http://www.w3school.com.cn/xpath/xpath_syntax.asp python核心模块之pickle和cPickle讲解:http://www.pythonclub.org/modules/pickle

Tcorpion的博客 1108

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python零基础入门学习之输入与输出

这被称为持久的存储对象。open方法第一个参数是你的文件名和路径,我的文件和程序在同一个文件夹下所以只需要填写文件名即可,第一个参数后面可以跟很多参数来完成不同的操作,而且很多参数是由默认值的,通过我们之前对函数的学习知道这样做的好处。在之前的编程中,我们的信息打印,数据的展示都是在控制台(命令行)直接输出的,信息都是一次性的没有办法复用和保存以便下次查看,今天我们将学习Python的输入输出,解决以上问题。这里使用的就是二进制的写入,读取的时候也使用的二进制,和写入的数据有关,这个大家多多留意。

m0_74824496的博客 107

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

pickle和cPickle:Python对象的序列化

目的:Python对象序列化 可用性:pickle至少1.4版本,cPickle 1.5版本以上 pickle模块实现了一种算法,将任意一个Python对象转化成一系列字节(byets)。此过程也调用了serializing对象。代表对象的字节流之后可以被传输或存储,再重构后创建一个拥有相同特征(the same characteristics)的新的对象。 cPickle使

yixiaojiejie的专栏 987

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python核心模块pickle和cPickle

    使用pickle模块你可以把Python对象直接保存到文件,而不需要把他们转化为字符串,也不用底层的文件访问操作把它们写入到一个二进制文件里。pickle模块会创建一个python语言专用的二进制格式,你基本上不用考虑任何文件细节,它会帮你干净利落地完成读写独享操作,唯一需要的只是一个合法的文件句柄。    pickle模块中的两个主要函数是dump()和load()。dump()函数接受

pythoner的专栏 1543
下一篇: python 中文文本分类
相国大人
博客等级 码龄10年 1009粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值