孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化

(完整学习过程屏幕记录视频地址在文末,手写笔记在文末)

一、什么是序列化与反序列化

序列化是指将内存中的数据进行指定规则的格式梳理,使之方便按一定格式保存到文件中。我的理解就是数据在文件中的保存的结构。

反序列化是指将磁盘中文件的保存的结构读取出来,然后转换为内存中的数据,并且可以在屏幕上输出为人可阅读的格式内容。

二、pickle模块

pickle模块是Python 内置的序列化与反序列化类,保存到文件时,是将内存数据以二进制格式保存到文件中的。

使用pickle模块前必须先声明引用:

import pickle

因此读取与保存时,open文件时,都是二进制读取与写入,模式输入要选择rb或wb

1

dump() 与 load()

dump操作是将内存中的数据保存到file对象中并写入磁盘;

load操作是将file对象中的二进制数据读出并转换为dict。

pickle.dump(数据变量如字典,file对象)

字典对象=pickle.load(file对象)

2.dumps()与loads()

dumps操作是将内存中的数据序列化为byte字节码对象;

loads操作是将byte字节码对象转换为dict。

测试:

import pickle

strfile='1.txt'

f=open(strfile,'wb')

dictA=dict(姓名='孤荷凌寒',QQ='578652607')

pickle.dump(dictA,f)

f.close

f=open(strfile,'rb')

dictB=pickle.load(f)

print(dictB)

f.close

执行结果:

{'姓名': '孤荷凌寒','QQ': '578652607'}

三、json模块

json模块是国际跨平台通用的json标准的一种序列化和反序列化操作,更具有通用价值。

使用将也必须先声明引用:

import  json

json的主要方法 也pickle的完全一样,但json的读取与写入都是以纯文本方式 进行的,因此open文件时,只能选择的模式是:r 或 w

测试如下:

import json

strfile='2.txt'

f=open(strfile,'w')

dictA=dict(姓名='孤荷凌寒',QQ='578652607')

json.dump(dictA,f)

f.close

f=open(strfile,'r')

dictB=json.load(f)

print(dictB)

f.close

运行结果:

{'姓名': '孤荷凌寒','QQ': '578652607'}

——————————

今天整理的学习笔记完成,最后例行说明下我的自学思路:

根据过去多年我自学各种编程语言的经历,认为只有真正体验式,解决实际问题式的学习才会有真正的效果,即让学习实际发生。在2004年的时候我开始在一个乡村小学自学电脑 并学习vb6编程语言,没有学习同伴,也没有高师在上,甚至电脑都是孤岛(乡村那时还没有网络),有的只是一本旧书,在痛苦的自学摸索中,我找到适应自己零基础的学习方法:首先是每读书的一小节就作相应的手写笔记,第二步就是上机测试每一个笔记内容是否实现,其中会发现书中讲的其实有出入或错误,第三步就是在上机测试之后,将笔记改为电子版,形成最终的修订好的正确无误的学习笔记。

通过反复尝试错误,在那个没有分享与交流的黑暗时期我摸黑学会了VB6,尔后接触了其它语言,也曾听过付费视频课程,结果发现也许自己学历果然太低,就算是零基础的入门课程,其实也难以跟上进度,讲师的教学多数出现对初学者的实际情况并不了解的情况,况且学习者的个体也存在差异呢?当然更可怕的是收费课程的价格往往是自己难以承受的。

于是我的所有编程学习都改为了自学,继续自己的三步学习笔记法的学习之路。

当然自学的最大问题是会走那么多的弯路,没有导师直接输入式的教学来得直接,好在网络给我们带来无限搜索的机会,大家在网络上的学习日志带给我们共享交流的机会,而QQ群等交流平台、网络社区的成立,我们可以一起自学,互相批评交流,也可以获得更有效,更自主的自学成果。

于是我以人生已过半的年龄,决定继续我的编程自学之路,开始学习python,只希望与大家共同交流,一个人的独行是可怕的,只有一群人的共同前进才是有希望的。

诚挚期待您的交流分享批评指点!欢迎联系我加入从零开始的自学联盟。

这个时代互联网成为了一种基础设施的存在,于是本来在孤独学习之路上的我们变得不再孤独,因为网络就是一个新的客厅,我们时刻都可以进行沙龙活动。

非常乐意能与大家一起交流自己自学心得和发现,更希望大家能够对我学习过程中的错误给予指点——是的,这样我就能有许多免费的高师了——这也是分享时代,社区时代带来的好福利,我相信大家会的,是吧!

根据完全共享的精神,开源互助的理念,我的个人自学录制过程是全部按4K高清视频录制的,从手写笔记到验证手写笔记的上机操作过程全程录制,但因为4K高清文件太大均超过5G以上,所以无法上传至网络,如有需要可联系我QQ578652607对传,乐意分享。上传分享到百度网盘的只是压缩后的720P的视频。

我的学习过程录像百度盘地址分享如下:(清晰度:1280x720)

Bilibili:

喜马拉雅语音笔记:

python 保存文件 吃内存_孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化...相关推荐

  1. python输入姓名 性别身高_孤荷凌寒自学python第十一天初识Python的字典类

    孤荷凌寒自学python第十一天初识Python的字典类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的字典其实是一张二维对照表 下面举例说明: 键名Key 姓名 性别 身高 ...

  2. python自学第8天字典_孤荷凌寒自学python第十一天初识Python的字典类

    孤荷凌寒自学python第十一天初识Python的字典类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的字典其实是一张二维对照表 下面举例说明: 键名Key 姓名 性别 身高 ...

  3. python获取类的所有方法、并存放到字典中_孤荷凌寒自学python第十二天python字典类的其它操作...

    今天继续对dict类进行研究 一.删除dict对象中的所有元素 dictname.clear() 此方法将删除dict对象中的全部元素,但字典对象本身还在. 二.关于建立dict的副本,即创建一个di ...

  4. python 循环控制语句结束_孤荷凌寒自学python第十五天python循环控制语句

    python中只有两种循环控制语句 一.while循环 while 条件判断式 1: 如果 条件判断式1 返回True 将执行此代码块的内容 而且此代码块的内容执行完成后 将重新判断条件判断式1 co ...

  5. python文件指针放在文件的开头_033孤荷凌寒自学python之文件操作初识

    今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开语句格式: file对象=open(文件路径及文件名[,打开模式默认为只读][,文件打开时缓存大小][encoding= ...

  6. python 优先级继承_孤荷凌寒自学python第二十二天python类的继承

    (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中定义的类可以继承自其它类,所谓继承的概念,我的理解 是,就是一个类B继承自类A,意味着类B的内部代码块中就算不写任何代码,类B仍然 ...

  7. 孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档

    孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库 ...

  8. 孤荷凌寒自学python第八十一天学习爬取图片1

    孤荷凌寒自学python第八十一天学习爬取图片1 (完整学习过程屏幕记录视频地址在文末) 通过前面十天的学习,我已经基本了解了通过requests模块来与网站服务器进行交互的方法,也知道了Beauti ...

  9. 孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2

    孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第九天. 今天继续学习mongoDB的简单操作, ...

最新文章

  1. java args包_Java Args.positive方法代码示例
  2. DL之NN/Average_Darkness/SVM:手写数字图片识别(本地数据集50000训练集+数据集加4倍)比较3种算法Average_Darkness、SVM、NN各自的准确率
  3. java date显示格式_Java如何显示不同格式的日期?
  4. (DFS)n皇后问题
  5. 让redhat5以yum方式安装软件
  6. “价值互联网”时代,带你读懂区块链
  7. java in查询无法查询到数据(mybatis字符#与字符$的区别)
  8. Spring Boot入门教程(零): yaml使用详解
  9. 高通骁龙888开始被Linux内核5.12版正式支持
  10. figma 导入导出 fig 文件
  11. IE主页被篡改,修改“Internet 选项”也无法解决时的解决方法
  12. oracle 查看owner,ORACLE数据库利用数据字典查询表的OWNER
  13. 脱机使用打印机怎么删除缓存_如何在Windows中使用脱机文件来脱机缓存网络文件...
  14. 基于WIN32 API界面编程实现的贪吃蛇游戏
  15. 世嘉VR虚拟乐园即将开业,位于二次元天堂秋叶原
  16. 当域名被微信封了怎么办?
  17. liunx 查看oracle监听,Linux配置Oracle监听提示异常
  18. 1232: [Usaco2008Nov]安慰奶牛cheer
  19. 登录这个轮子,你还在造?
  20. import caffe出错:libcaffe.so.1.0.0-rc3: undefined symbol: _ZN2cv8imencodeERKNSt7__cxx1112basi

热门文章

  1. JAVA程序(阶乘10以内)
  2. Orchard商城模块(Commerce)设计与后台部分
  3. kafka Failed to send messages after 3 tries 问题解决
  4. 数学图形(1.33) 棕子曲线
  5. iOS 6 的5个新特性创建杀手级应用
  6. 聊聊身边的嵌入式,英语学习利器点读笔
  7. Sourcetail 一款代码编辑神器,让看源码如丝般顺滑
  8. Linux下的图形库curses写贪吃蛇,酷
  9. 【漫画】25岁程序员 VS 35岁程序员,塑造自己的不可替代性,才能让自己更有价值 ​...
  10. 看printk引发的一点思考