python3.4 pickle 序列化大于4GB文件

news/2024/11/9 0:49:14/

挑干的说

python pickle 序列化大于4GB文件,在使用python3.4以上版本时,只需要指定protocol=4关键字参数即可。其他版本需要将数据分块。

关于协议版本

pickle目前有6个不同的协议版本。越高版本的协议所需的Python版本越新。

  • protocol 0:是最初的协议,是“人类可读”的协议,向后兼容早期版本的Python。
  • protocol 1:是一个古老的二进制格式,向后兼容早期版本的Python。
  • protocol 2:是在Python 2.3中引入的。它提供了对新类型更有效的存取。查看PEP 307 来了解 protocol 2 改进的细节。
  • protocol 3:是在Python 3.0中引入的。它明确的支持字节(bytes)对象,并且不能被Python 2.x存取。 这是Python 3.0 -3.7使用的默认协议。
  • protocol 4:是在Python 3.4中引入的。它增加了对非常大的对象的序列化支持,以及可以序列化更多种类的对象,做了一些数据格式的优化。这是从Python 3.8开始使用的默认协议。查看PEP 315来4 了解protocol 4 改进的细节。
  • protocol 5:是在Python 3.8中引入的。它增加了对out-of-band数据的支持,以及对in-band数据的加速和优化。 查看PEP 315来4 了解protocol 5 改进的细节。

pickle.HIGHEST_PROTOCOL
一个整数,可用的最高协议版本。 这个值可以作为协议值传递给dump()和dumps()函数以及Pickler构造函数。

pickle.DEFAULT_PROTOCOL
一个整数,用于pickle的默认协议版本。 可能小于HIGHEST_PROTOCOL。 目前的默认协议是4。默认协议是首次在Python 3.4中引入的。

测试代码:

#导入
import numpy as np
import pickle
#序列化
pickle_protocol=4
data=np.random.random((30000,30000))
with open ("pkl.pkl", 'wb') as f:pickle.dump(data, f, protocol=pickle_protocol)
#反序列化
with open ("pkl.pkl", 'rb') as f: data2=pickle.load(f)
#测试数据一致性
(data==data2).all()

True

测试截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考:

pickle文档


http://www.ppmy.cn/news/301237.html

相关文章

zip压缩大于4g文件linux,unzip如何解压大于4GB的zip文件

首先建议的是不要产生这么大的备份文件,而是产生MB大小的文件,而非GB级别的文件。 第二,此为系统设计使然,也可以算是系统的bug吧。详见下面的说明: Facts from the maintainer: Limit for a file size of one archive…

制作windows启动盘-大于4GB镜像

制作windows启动盘-大于4GB镜像 制作一个 Windows 安装 U 盘是很容易的,使用 UltraISO 这样的刻录工具量产一个 iso 镜像文件到 U 盘即可。然而随着 Windows 10 版本号的提升,镜像变得越来越大,终于 FAT32 文件系统不再能够容纳得下安装镜像…

32位Windows 7开启PAE可以识别4GB以上内存

众所周知32位Windows 7系统最大只能识别4GB内存,并且可用内存最多为3.25GB. 但是32位的Windows Server 2003/2008却可以使用4GB以上内存,原因就在于这个系统可以利用x86的PAE特性。 然而默认情况Windows 7却无法使用PAE特性,原因在于系统内…

Logback自定义DBAppender保存系统日志到数据库

在系统中采用了spring boot logback+slf4j的日志框架,将系统日志记录到数据库。 相关参考来源: 官方文档-DBAppender Logback输出日志到自定义MySQL数据库(重写DBAppender) logback日志框架中filter的使用 1. 添加依…

nvidia-smi命令报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver.

nvidia-smi命令报错:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running 网上查找到的解决办法是: ll /usr/src/ #查看驱动版本号 sudo apt-get inst…

【SAP GUI 脚本 VBA】

目录 启用 SAP脚本 Tracker Excel启用VBA 用法 TEXT文本 Press点击 Key选择 Selected复选框 判断字段是否存在 VerticalScrollbar 滑动滚动条 Enter 粘贴剪贴板 读取shell 读取shell[1] 实例 CO03 MM03 CS15 TEST KS13 KSH1 KSH2 KSH3 FS00 SM30 Tcod…

转义字符\033(设置终端的字体显示效果)

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 参考博客 命令行特殊显示效果\033和发声音\007_华硕他哥的博客-CSDN博客 \033格式:指定输出格式_51CTO博客_wkt格式 一、\033的说明 在关于ASCII字符的那些事儿中提到,ASCII字符可以使用前面…

基于文本界面的《开发团队调度软件》

基于文本界面的《开发团队调度软件》 一、功能介绍 1.软件启动时,根据给定的数据创建公司部分成员列表(数组) 2.根据菜单提示,基于现有的公司成员,组建一个开发团队 3.组建过程包括将成员插入到团队中,…