python核心模块之pickle和cPickle讲解

 pickle模块使用的数据格式是python专用的,并且不同版本不向后兼容,同时也不能被其他语言说识别。要和其他语言交互,可以使用内置的json包使用pickle模块你可以把 Python 对象直接保存到文件,而不需要把他们转化为字符串,也不用底层的文件访问操作把它们写入到一个二进制文件里。 pickle模块会创建一个python语言专用的二进制格式,你基本上不用考虑任何文件细节,它会帮你干净利落地完成读写独享操作,唯一需要的只是一个合法的文件句柄。
        pickle模块中的两个主要函数是dump()和load()。dump()函数接受一个文件句柄和一个数据对象作为参数,把数据对象以特定的格式保存到给定的文件中。当我们使用load()函数从文件中取出已保存的对象时,pickle知道如何恢复这些对象到它们本来的格式。

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

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

        cPickle是pickle得一个更快得C语言编译版本。


        pickle和cPickle相当于java的序列化和反序列化操作
 
#! /usr/local/env python
# -*- coding=utf-8 -*-

if __name__ == "__main__":
    import cPickle

    #序列化到文件
    obj = 123,"abcdedf",["ac",123],{"key":"value","key1":"value1"}
    print obj
    #输出:(123, abcdedf, [ac, 123], {key1: value1, key: value})
    #r 读写权限 r b 读写到二进制文件
    f = open(r"d:a.txt","r ")
    cPickle.dump(obj,f)
    f.close()
    f = open(r"d:a.txt")
    print cPickle.load(f)
    #输出:(123, abcdedf, [ac, 123], {key1: value1, key: value})

    #序列化到内存(字符串格式保存),然后对象可以以任何方式处理如通过网络传输
    obj1 = cPickle.dumps(obj)
    print type(obj1)
    #输出:<type str>
    print obj1
    #输出:python专用的存储格式
    obj2 = cPickle.loads(obj1)
    print type(obj2)
    #输出:<type tuple>
    print obj2
    #输出:(123, abcdedf, [ac, 123], {key1: value1, key: value})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

反序列化层遍历二叉树

反序列化层遍历二叉树 规则: 序列化:如果这个节点有值,则打印“值!" 如果这个节点没有值,则打印“#!” 从上到下,从左到右 比如: 1 …

超棒的在线Bootstrap主题编辑工具 - lollytin

lollytin 是一款帮助制作Bootstrap3主题的在线工具&#xff0c;虽然现在仍旧是Beta版本&#xff0c;但是已经非常不错了。 主要功能&#xff1a; 通过拖拽来生成主题支持拖拽页头&#xff0c;页脚&#xff0c;内容&#xff0c;幻灯&#xff0c;地图&#xff0c;表单&#xff0c…

CentOS 5.9 yum安装LAMP(Apache+MySQL+PHP)

2019独角兽企业重金招聘Python工程师标准>>> 1、 yum -y install mysql mysql-server /*yum安装MySQL*/ 2、chkconfig --levels 235 mysqld on /*设置开机启动*/ 3、以MySQL用户root登陆: mysql -u root 登陆后设置root密码&#xff1a; set password for rootl…

C#获2021年度编程语言奖,开发者们最该关注这些亮点!

2022年的第一个好消息&#xff0c;应该就是C#获得“TIOBE 年度编程语言奖”。虽然眼下TIOBE的新闻尚未发布&#xff0c;但早在21年12月榜单发布的同时&#xff0c;TIOBE的CEO Paul Jansen表示&#xff0c;C#将获取“TIOBE 年度编程语言奖”。C#有着21年的悠久历史了&#xff0c…

编写程序在窗口中写出自己名字的拼音缩写_各类英文缩写:全称居然这么朴素?网友:最后一个我笑了...

提到听起来很牛的缩写&#xff0c;小优第一个想到的单词是VIP&#xff0c;一直认为它是一个很厉害的单词&#xff0c;那它的全称一定更厉害吧!直到初中&#xff0c;被英语老师打破幻想&#xff0c;原来VIP的全称就只是 Very Important Person! Excuse me ??好吧&#xff01;那…

如何像Uber一样给工程师派单,解放外包生产力?

2019独角兽企业重金招聘Python工程师标准>>> 2014年&#xff0c;陈柯好的第一个创业项目失败&#xff0c;半年之内&#xff0c;陈柯好以技术合伙人的方式游走于旅游、电商、团购、票务等各种领域。正当他对职业方向感到迷茫时&#xff0c;“大众创业、万众创新”的口…

为什么越来越多的人消失在朋友圈?

全世界只有3.14 % 的人关注了爆炸吧知识微博上有个热门话题讨论&#xff1a;#越来越多的人开始消失在朋友圈#。网友们纷纷评论&#xff0c;也道出了背后的辛酸真相。“越来越觉得自己渺小和不重要。”“其实根本没人关心你朋友圈写的是什么。”……是的&#xff0c;越来越多的人…

判断一棵树是否为平衡二叉树

代码: 平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。构造与调整方法 平衡二叉树的常用算法有红黑树、AVL、 Treap 等。 最小二叉平衡树…

Java类集-list

Collection 子接口&#xff1a; ArrayList是List 接口和Collection接口的一个子类&#xff0c;用于实例化两种接口 package leiji; import java.util.ArrayList; import java.util.List; import java.util.Collection; public class ArryList { public static void main(String…

magento 插件

magento 后台删除订单插件 插件地址 http://www.magentocommerce.com/magento-connect/delete-orders-2.html转载于:https://www.cnblogs.com/echofrank/p/3867225.html

只显示标准采购订单

应用 Oracle Purchasing 层 Level Function 函数名 Funcgtion Name PO_POXPOVPO 表单名 Form Name POXPOVPO 说明 Description 只显示标准采购订单 条件 Condition 触发器事件 Tirgger Event WHEN-NEW-FORM-INSTANCE 触发器对象 Tirgger Object / 条件 Condit…

教你10分钟对接人大金仓EF Core 6.x

【导读】目前.NET Core中据我了解到除了官方的EF Core外&#xff0c;还用的比较多的ORM框架&#xff08;恕我孤陋寡闻哈&#xff0c;可能还有别的&#xff09;有FreeSql、SqlSugar&#xff08;排名不分先后&#xff09;。FreeSql和SqlSugar都已早早支持国产数据库比如人大金仓、…

mfc怎么改按钮的按下状态_【荐读】马桶上一大一小的按钮该怎么按?原来这些年都错了...

马桶水箱上有两个冲水钮&#xff0c;一半大一半小&#xff0c;你知道它们有什么作用吗&#xff1f;日常使用马桶时两个冲水按钮&#xff0c;要怎么按才正确&#xff1f;今天终于有答案了.....两按钮的作用水箱一大一小的按钮&#xff0c;分别代表着满水和半水排水的功能。小按钮…

TCP/IP的基本工作原理

从以上体系结构来看&#xff0c;TCP/IP是OSI七层模型的简化&#xff0c;如图3-9所示&#xff0c;共分为4层&#xff1a;应用层&#xff0c;传输层&#xff0c;IP层和物理网络接口层。TCP/IP模型将与物理网络打交道的物理网络部分称为网络接口&#xff0c;它相当于OSI的物理层和…

linux centos7 root密码重置

转&#xff1a;http://blog.chinaunix.net/uid-21209618-id-4738916.html 分类&#xff1a; LINUX 三年左右没接触linux技术工作&#xff0c;忘记的有很多。不知该怎么去运用。突然间想到很久没接触喜爱的LINUX&#xff0c;便下下来centos7玩玩。在安装的过程中发现变化挺大。用…

史上最全几何技巧,远比傻做一千道题更实用!

▲ 点击查看爱因斯坦说&#xff1a;“一个人当他最初接触欧几里得几何学时&#xff0c;如果不曾为它的明晰性和可靠性所感动&#xff0c;那么他是不会成为一个科学家的。”我们现在再回过头想想&#xff0c;我们小时候学几何的时候&#xff0c;真的有感受到过这种爱因斯坦说的感…

Java类集-set

Set接口是Collection接口的子接口&#xff0c;Set接口中不能插入重复元素 Set接口的常用子类&#xff1a; HashSet是set接口的一个子类&#xff0c;特点&#xff1a;里面不能存放重复元素&#xff0c;而且采用散列的存储方式&#xff0c;所以没有顺序。 Treeset也是set接口的…

Color the ball

Color the ball Time Limit : 9000/3000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 30 Accepted Submission(s) : 13 Problem DescriptionN个气球排成一排&#xff0c;从左到右依次编号为1,2,3....N.每次给定2个整数a b(a < b),l…

只允许操作外协任务

应用 Oracle Work in Progress 层 Level Function 函数名 Funcgtion Name WIP_WIPDJMDF_DEFINE 表单名 Form Name WIPDJMDF 说明 Description 只允许操作外协任务 条件 Condition 触发器事件 Tirgger Event WHEN-VALIDATE-RECORD 触发器对象 Tirgger Object W_…

sqlite字段是否存在_【漏洞预警】Linux内核存在本地提权漏洞(CVE20198912)

更多资讯和分析文章请关注启明星辰ADLab微信公众号及官方网站(adlab.venustech.com.cn)漏洞背景近日&#xff0c;Linux git中发布一个commit补丁&#xff0c;该补丁对应的漏洞是一个本地提权漏洞CVE-2019-8912&#xff0c;漏洞影响范围较广。根据git中的commit信息可知&#xf…