序列化模块_pickle
序列化:
把不能够直接存储的数据变成字节流(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的更多相关文章
- 常用模块---sys&logging&序列化模块(json&pickle)
sys 模块 sys.argv 命令行参数List,第一个元素是程序本身路径,通常用来避免io 阻塞 print('欢迎进入') info=sys.argv ': print('login succe ...
- python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...
- sys模块和序列化模块
import sysprint(sys.version) #查看当前pycharm版本print(sys.path )#返回模块的搜索路径print(sys.platform )#返回操作系统的版本p ...
- day 20 - 1 序列化模块,模块的导入
序列化模块 首先我们来看一个序列:'sdfs45sfsgerg4454287789sfsf&*0' 序列 —— 就是字符串序列化 —— 从数据类型 --> 字符串的过程反序列化 —— 从 ...
- python之序列化模块、双下方法(dict call new del len eq hash)和单例模式
摘要:__new__ __del__ __call__ __len__ __eq__ __hash__ import json 序列化模块 import pickle 序列化模块 补充: 现在我们都应 ...
- 4-20模块 序列化模块 hashlib模块
1,模块,py文件就是模块,py之所以好用就是模块多. 2,模块的分类: 1,内置模块,python 安装时自带的模块 2,扩展模块,别人写好的,需要安装之后,可以直接使用.itchat微信模块, b ...
- Python内置模块之序列化模块
序列化模块 json dumps loads dump load pickle dumps loads dump load shelve json 1: dumps/loads import json ...
- 序列化模块— json模块,pickle模块,shelve模块
json模块 pickle模块 shelve模块 序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. # 序列化模块 # 数据类型转化成字符串的过程就是序列化 # 为了方便存储和网 ...
- python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )
1.os模块 2.序列化模块:(1)json模块 和 pickle模块 一.os模块 os.path.abspath: (1)把路径中不符合规范的/改成操作系统默认的格式 import os path ...
随机推荐
- 删除log文件末尾中指定的行数
/// <summary> /// 删除log文件末尾中指定的行数 /// </summary> /// <param name ...
- RabbitMQ和kafka从几个角度简单的对比
业界对于消息的传递有多种方案和产品, 本文就比较有代表性的两个MQ(rabbitMQ,kafka)进行阐述和做简单的对比 在应用场景方面,RabbitMQ,遵循AMQP协议,由内在高并发的erlann ...
- MAC--NPAPI学习(一)简要介绍NPAPI的函数
NPAPI是浏览器与插件交互的接口,下面先简要介绍一下NPAPI的函数: Mach-o entry points NPError NP_Initialize(NPNetscapeFuncs* brow ...
- Unity3D UGUI实现Toast
项目中有些信息需要以Toast的形式体现出来,不需要交互,弹出后一段时间后消失,多个Toast会向上重叠,下面是一个UGUI Toast的实现,动画部份用到了Dotween来实现 首先需要制作Toas ...
- JavaSE-类
一.基础概念:计算机语言的发展是接近人的思维方式演变:汇编语言(面向机器).C语言(面向过程).java(面向对象) 二.成员变量和局部变量: 1.全名定义一个类: Package 包名: Class ...
- margin外边距属性
外边距属性: 设置元素与元素之间的距离(外边距),4个方向(上右下左). margin:长度值|百分比|auto margin-top margin-right margin-bottom margi ...
- 并发编程心得--synchronized
根据业务需求解决并完善并发问题-- IWMS仓库系统不考虑并发那么大的情况下,我想到的有2种并发解决方案. 1.在同时请求时,给需要操作的保存接口添加synchronized 同步方式,同步保存方法, ...
- 聚类--K均值算法:自主实现与sklearn.cluster.KMeans调用
1.用python实现K均值算法 import numpy as np x = np.random.randint(1,100,20)#产生的20个一到一百的随机整数 y = np.zeros(20) ...
- calcOpticalFlowPyrLK
void calcOpticalFlowPyrLK( InputArray prevImg, InputArray nextImg, ...
- 20164318 毛瀚逸 Exp3 免杀原理与实践
1实验要求 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1 ...