中断文件中的字节提取

问题描述 投票:0回答:0

我有一个 11*32 字节的二进制文件(在这种情况下,它应该是动态的),它代表每 32 字节块的单独标头。第一个标头的介绍由魔术字节“5A”设置;以下标头是数字标记,如 0x01、0x02、...、0xnn。

从下面的代码中,我正在提取 32 字节块并解析单个字节(小端):

from struct import unpack

offsets = [1,3,4,4,4,4,4,4,2,1,1]
i = 0
zum={}
with open('file.bin', 'rb') as file:
    data_offset = unpack("<I",file.read(16)[12:16])[0]
    anz_pmcblock = int(data_offset/32)
    file.seek(0)
    for n in range(0,anz_pmcblock):
        pmcblock = file.readline(32)
        j=0
        for off in offsets:
            if j==0:
                zum[i]=[pmcblock[j:j+off]]
                j+=off
            else:
                zum[i].append(pmcblock[j:j+off])
                j+=off
        i+=1

第 10 个标头(标记为“0A”)将被读取为“ ' 并正在取消 readline() 的进一步阅读。如果我改变这个值,读数将被处理。

如何打开文件并将其读取为“真正的二进制文件”,而不进行编码?

python file binary
© www.soinside.com 2019 - 2024. All rights reserved.