栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python基础学习-通过pickle将list通过二进制写入文件,然后读取其二进制文件

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python基础学习-通过pickle将list通过二进制写入文件,然后读取其二进制文件

基本介绍

这里引用其他博客中的一个关于dump、load的介绍
Python中的Pickle模块实现了基本的数据序列与反序列化。

一、dump()方法

pickle.dump(obj, file, [,protocol])

注释:序列化对象,将对象obj保存到文件file中去。参数protocol是序列化模式,默认是0(ASCII协议,表示以文本的形式进行序列化),protocol的值还可以是1和2(1和2表示以二进制的形式进行序列化。其中,1是老式的二进制协议;2是新二进制协议)。file表示保存到的类文件对象,file必须有write()接口,file可以是一个以’w’打开的文件或者是一个StringIO对象,也可以是任何可以实现write()接口的对象。

二、load()方法

pickle.load(file)

注释:反序列化对象,将文件中的数据解析为一个python对象。file中有read()接口和readline()接口

pickle中dump与load介绍

例子

这里通过具体的例子来展示如何用dump和load写入和读取二进制文件

# 将list通过二进制写入文件,然后读取其二进制文件
import pickle
my_list = [123, 2.22, 'test', ['abc']]

# 通过写入二进制模式打开文件
pickle_file = open('mylist_pkl.pkl', 'wb')

# 序列化对象,将对象obj保存到文件file中去
pickle.dump(my_list, pickle_file)
# 关闭文件
pickle_file.close()

# 通过读取二进制模式打开文件
pickle_file = open('mylist_pkl.pkl', 'rb')

# 反序列化对象,将文件中的数据解析为一个python对象
my_list2 = pickle.load(pickle_file)

print(my_list2)

效果

这里的文件后缀名其实是什么没有关系,因为我们写入和读取的时候都通过了二进制转换,直接打开文件很有可能是乱码。

ps:遇到一个小坑,创建python文件的时候图方便,命名直接为pickle,和引入的pickle重名了,导致了报错。报错内容如下

闲谈pickle

pickle直接的英文解释就是泡菜,可以理解成pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。类似我们将泡菜腌制在泡菜罐里,类似封装的感觉,需要再取出来,而不是每次用到都重新腌制一遍。
pickle可以存储和读取成其他格式比如list dict的数据,这叫做序列化和反序列化,把你的数据结构转换成字符串 ,可以保存到文件,方便下次快速恢复。有了pickle,依靠dump和load,就可以轻松实现。说的直白一点,就是一个存储和获取的工具,pickle把Python的数据结构用另外一种简单的形式存储到文件中,然后方便转移和传播,然后在用同一样的方法还原回去。
这一部分套用了pickle的意义

举一个小甲鱼视频中简单的例子。
对于这种占用大部分空间的字典,可以通过pickle的dump保存到文件当中


需要的时候再通过pickle的load获取

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/307421.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号