Python将二进制数据缓冲区拆分为特定大小的块并将其存储在变量中

时间:2019-04-12 10:15:02

标签: python

我有以下代码:

tag_and_data = bin_file_obj.read(chunk_size)

然后我使用 slicing 如下所示根据某个字节的大小将其分为两个变量(前16个字节用于标记,其余全部用于数据):

tag, data = tag_and_data[16:], tag_and_data[:16]

我可以单行执行以上操作吗?是否有诸如 split ()之类的内置方法根据字节大小对数据进行分段并将其解压缩为变量?

1 个答案:

答案 0 :(得分:0)

我认为没有内置的解决方案,但是您会写:

def decompose_tag_and_data(tag_and_data):
    return tag_and_data[16:], tag_and_data[:16]

然后将其命名为:

tag, data = decompose_tag_and_data(bin_file_obj.read(chunk_size))

有一个明显的扩展:

def decompose(data,index):
    return data[:index],data[index:]

但是将其扩展为以pythonesque的方式支持多个索引超出了我的范围。