关于读取npz文件输出的b、PK、转义字符等含义的技术咨询
解读npz文件的二进制输出内容
你看到的这些内容不是随机的,每部分都有明确含义,拆解如下:
b’:这是Python对字节串(bytes类型)的标识,说明输出的是原始二进制数据,不是可直接阅读的字符串。PK:ZIP压缩文件的标志性签名——npz本质就是ZIP格式的压缩包,里面打包了一个或多个.npy格式的数组文件,所以开头会出现ZIP的签名。\xXX格式的字符:这是十六进制转义的单字节数据,对应ASCII或二进制值,是ZIP文件头的标准结构字段,每个都有固定用途:\x04\x03:ZIP本地文件头的固定签名,标识接下来是压缩包内一个文件的元数据\x14\x00:创建该ZIP包使用的PKWARE版本(十进制20,对应ZIP 2.0规范)\x00\x00:通用位标志,表示无特殊压缩/加密设置\x07\x00:压缩方法(十进制7,对应Deflate压缩算法)- 后续的
\x05\x00、!\x00、M\xd05\xda\xa1\xb7等:分别对应文件修改时间、CRC32校验值、压缩后/未压缩文件大小的字段内容,都是ZIP格式规定的元数据 \x00:空字节(ASCII值0),用于ZIP头的字段分隔或填充
PK.npy:这个是npz压缩包内包含的一个.npy文件的文件名,说明你的npz文件里存储了一个名为PK的数组\n:换行符,可能是输出时的自动换行,或者文件内的一个字节
如果你想正确读取npz文件的内容,不要直接读取二进制,应该用numpy的np.load()方法:
import numpy as np data = np.load("your_file.npz") # 查看所有数组名 print(data.files) # 读取指定数组 pk_array = data["PK"]
内容的提问来源于stack exchange,提问作者heidii
相关产品推荐
相关产品推荐

