本文实例讲述了Python使用pickle模块实现序列化功能。分享给大家供大家参考,具体如下:

Python内置的pickle模块能够将Python对象序列成字节流,也可以把字节流反序列成对象。

import pickle

class Student:

def __init__(self, name, age):

self.name = name

self.age = age

def say(self):

print("I am", self.name)

>>> t = Student('Tom', 23)

>>> t.say()

I am Tom

>>>

>>> save_path = './tom_msg'

>>> with open(save_path, 'wb') as f: # 字节流写入

... pickle.dump(t, f) # 序列化数据保存在文件中

>>>

>>> with open(save_path, 'rb') as f: # 字节流读出

... after_t = pickle.load(f) # 读取文件信息反序列化成对象

...

>>> after_t.__dict__

{'name': 'Tom', 'age': 23}

>>> after_t.say()

I am Tom

>>>

>>>

>>> l = Student('Lisa', 23)

>>> serialized = pickle.dumps(l)

>>> serialized

b'\x80\x03c__main__\nStudent\nq\x00)\x81q\x01}q\x02(X\x04\x00\x00\x00nameq\x03X\x04\x00\x00\x00Lisaq\x04X\x03\x00\x00\x00ageq\x05K\x17ub.'

>>> after_l = pickle.loads(serialized)

>>> after_l.say()

I am Lisa

>>> after_l.__dict__

{'name': 'Lisa', 'age': 23

如果比较复杂的操作(对象属性更变,添加删除),pickle模块可能会出问题,那时候应该结合copyreg来使用

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

本文标题: Python使用pickle模块实现序列化功能示例

本文地址: http://www.cppcns.com/jiaoben/python/234397.html

python程序设计实验报告实验程序流程序列化_Python使用pickle模块实现序列化功能示例...相关推荐

  1. 金山学院信息与机电工程系实验报告实验2 程序流程控制

    金山学院信息与机电工程系实验报告实验2 程序流程控制 一.实验目的和要求 (1)掌握if分支结构.for循环和while循环结构的使用. (2)熟悉列表.元组.字典.集合的概念和基本用法. 二.实验内 ...

  2. 实验c语言程序数据类型,C语言程序设计实验报告——实验2--数据类型、运算符和表达式.doc...

    C语言程序设计实验报告--实验2--数据类型.运算符和表达式.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档 ...

  3. java程序设计教程实验报告_java程序设计课程--实验报告-实验13.doc

    java程序设计课程--实验报告-实验13.doc 还剩 12页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: ...

  4. c语言实验题水仙花数5359,《C语言程序设计》实验报告(实验1-12).doc

    <C语言程序设计>实验报告(实验1-12).doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会 ...

  5. c语言程序设计植树,C语言程序设计实验报告——实验

    C语言程序设计实验报告--实验 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档 ...

  6. Java程序设计实验报告 实验名称:循环和数组

    Java程序设计实验报告 实验名称:循环和数组 学号: 姓名:大聪TI学员 实验日期:2018年5月30日星期三 一.实验目的: 1. 遵循循环设计策略来开发循环,使用标记值控制循环. 2. 使用fo ...

  7. python实验报告实验总结_Python词云制作实验报告

    实验题目:n Python 词云制作实验报告 实验目的与要求: 础 掌握基础 Python 安装过程和词云制作. 实验步骤: n Python 安装 1.击 双击 Anaconda2-4.0.0-Wi ...

  8. c语言程序设计实验教程实验报告,C语言程序设计实验报告——实验九.doc

    C语言程序设计实验报告--实验九.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. ...

  9. c语言程序设计第五版实验报告九,C语言程序设计实验报告-实验九.doc

    C语言程序设计实验报告-实验九.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3 ...

最新文章

  1. MySQL存储引擎--------Federated最佳实战
  2. java calendar.add方法_Java Calendar add()方法与示例
  3. 关于一个枚举IE表单的DLL,编译无错,但是得不到想到的结果。
  4. 退休当月要干到月底吗_在一线城市交社保那么多年,退休后到底在哪领养老金,要回老家吗?...
  5. 8086汇编 贪吃蛇 源代码
  6. Unity经典游戏教程之:雪人兄弟
  7. 微信JSAPI支付,报错当前页面的URL未注册
  8. 招贤纳士|360WEB平台云平台部招人啦
  9. Git笔记(4) 获取仓库
  10. 10-R语言文本挖掘tm包详解
  11. 2021年双十一大复盘:众人唱衰双十一,我们却发现了这些机会
  12. android nsd和udp广播,android - 调用resolveService时,NSD在DiscoveryListener回调中缺少NSDManager - 堆栈内存溢出...
  13. 食堂饭卡管理系统C语言——课程设计实习
  14. centos分区方案
  15. 选择排序 简单选择排序 直接选择排序的区别
  16. Scrapy爬虫快速入门
  17. 嵌入式开发(一):嵌入式开发新手入门
  18. 【Git】git add
  19. 如何在word中的图片上画圈标注_怎么在word图片上画圈
  20. 有向图 G=(V, E) 的拓扑排序

热门文章

  1. Aux函数java,verse.aux
  2. magisk安装失败_如何使用Magisk去维补boot实现root权限-适合小米一加全部机型
  3. 5W 字的 Linux 知识总结
  4. 从偏远的小山村出来的孩子,一路的 “辛酸史”
  5. IDEA 真牛逼,900行 又臭又长 的类重构,几分钟搞定
  6. 推荐几个华为、字节跳动、蚂蚁金服的大佬公号
  7. 带你学python基础:元祖tuple和字典dictionary
  8. 数据结构:线性表(java实现)
  9. struts2教程(4)--类型转换
  10. 通过XML设置屏幕方向(android:screenOrientation)详解