序列化:

把不能够直接存储的数据变成字节流(bytes)保存在文件,

进行持久化存储

反序列化:

任何数据都可以转成字节流(bytes)进行存储:

1. dumps

把任意对象序列化

 li = [1, 2, 4]
res = pickle.dumps(li) # 返回bytes
print(res, type(res))

2. loads

把字节流转换为原本的数据

 li1 = pickle.loads(res)

 # 转换回的数据类型为list
print(li1, type(li1))

3. dump(obj, f)

将数据写入文件

 with open('1.txt', 'wb') as f:
li = [1, 2, 4, 5] # 将li转换成bytes, 使用f句柄写入文件, 没有返回值
pickle.dump(li, f)

4. load(f)

读取写入文件中的字节流数据, 并将其转换成原本的数据

 with open('1.txt', 'rb') as f:
res = pickle.load(f) # 读取f中写入的数据对象, 将bytes转换成原本的数据类型
print(res, type(res))

序列化迭代器

 iter1 = iter(range(5))
res = pickle.dumps(iter1) iter2 = pickle.loads(res)
print(iter2, type(iter2))

多数据对象使用pickle写入文件

 li = [1, 2, 4, 5]
tup = (1, 2, 4, 5)
dic = {1:2, 2:3, 4:3}
s = 'abc'
setvar = {1, 2, 4} with open('2.txt', 'wb') as f:
pickle.dump(li, f)
pickle.dump(tup, f)
pickle.dump(setvar, f)
pickle.dump(dic, f)
pickle.dump(s, f) with open('2.txt', 'rb') as f:
# f也是一个迭代器,
# load相当于next, 不断调用f
# 返回反序列化后的数据
for i in range(5):
res = pickle.load(f)
print(res, type(res))

序列化模块_pickle的更多相关文章

  1. 常用模块---sys&logging&序列化模块(json&pickle)

    sys 模块 sys.argv 命令行参数List,第一个元素是程序本身路径,通常用来避免io 阻塞 print('欢迎进入') info=sys.argv ': print('login succe ...

  2. python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...

  3. sys模块和序列化模块

    import sysprint(sys.version) #查看当前pycharm版本print(sys.path )#返回模块的搜索路径print(sys.platform )#返回操作系统的版本p ...

  4. day 20 - 1 序列化模块,模块的导入

    序列化模块 首先我们来看一个序列:'sdfs45sfsgerg4454287789sfsf&*0' 序列 —— 就是字符串序列化 —— 从数据类型 --> 字符串的过程反序列化 —— 从 ...

  5. python之序列化模块、双下方法(dict call new del len eq hash)和单例模式

    摘要:__new__ __del__ __call__ __len__ __eq__ __hash__ import json 序列化模块 import pickle 序列化模块 补充: 现在我们都应 ...

  6. 4-20模块 序列化模块 hashlib模块

    1,模块,py文件就是模块,py之所以好用就是模块多. 2,模块的分类: 1,内置模块,python 安装时自带的模块 2,扩展模块,别人写好的,需要安装之后,可以直接使用.itchat微信模块, b ...

  7. Python内置模块之序列化模块

    序列化模块 json dumps loads dump load pickle dumps loads dump load shelve json 1: dumps/loads import json ...

  8. 序列化模块— json模块,pickle模块,shelve模块

    json模块 pickle模块 shelve模块 序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. # 序列化模块 # 数据类型转化成字符串的过程就是序列化 # 为了方便存储和网 ...

  9. python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )

    1.os模块 2.序列化模块:(1)json模块 和 pickle模块 一.os模块 os.path.abspath: (1)把路径中不符合规范的/改成操作系统默认的格式 import os path ...

随机推荐

  1. Day03_Python知识总结

    1.元组:  元组其实跟列表差不多,也是存一组数,但它一旦创建便不能修改,所以又叫只读列表. names = ("alex","jack","eric ...

  2. 使用Selenium进行浏览器自动化操作记录

    一位经验丰富的同事交给了我一个任务:将20个IP地址添加到公司系统对应的目录下. 这个任务之前做过,并且数量是远不止20个,当时就学习Selenium并且使用Python3.6写了一个脚本用来自动化地 ...

  3. Canvas 渲染模式

    1. Canvas Canvas Component 是UI布局和渲染的抽象空間,所有的UI都必須在此元素之下(子物件),简单来说 Canvas 就是渲染 UI 的組件. 2. Render Mode ...

  4. 在word中批量更改Mathtype公式的格式

    方法参照下面这个链接 还有这个方法

  5. JSF相关介绍

    About JavaServer Faces technology simplifies building user interfaces for JavaServer applications. D ...

  6. 20164322韩玉婷 -----EXP3 免杀原理与实践

    基础问题回答 1.杀软是如何检测出恶意代码的? (1)基于特征码的检测 特征码是能识别一个程序是一个病毒的一段不大于64字节的特征串.如果一个可执行文件包含这样的特征码则被杀毒软件检测为是恶意代码. ...

  7. win10 + ubuntu 16.04 双系统安装

    第一次写博客,有错的请指教emmmm 这是因为老师的要求在做课程设计,要用到ubuntu环境,对于这个来说,学长说的是14 16 18都很稳定,但是他在用16.04所以我也用的ubuntu16.04方 ...

  8. 第三次Scrum冲刺————Life in CCSU

    # 第三次Scrum冲刺————Life in CCSU # 一.第三次Scrum任务 小组GitHub地址链接:https://github.com/LoneylittleTeam/Team 个人G ...

  9. Spock - Document -06 - Modules

    Modules Peter Niederwieser, The Spock Framework TeamVersion 1.1 Guice Module Integration with the Gu ...

  10. Azure monitor Portal 、Azure monitor API监控指标、性能监视器常用指标