如何在python中转换分段块字节中的纯文本?

问题描述

有没有一种简单的方法可以在python中将纯文本转换为分段的块数组?例如,每个块应该是 16 字节。如果纯文本的最后一部分小于 16 Bytes,则可以将其填充到较小的块中。

解决方法

您可以使用 chunks 库中的 funcy 方法。一个例子是:

import funcy

text = 'samplestringwithletters'
btext = text.encode('utf-8')

chunked_text = list(funcy.chunks(3,btext))
print(chunked_text)

产生的结果:

[b'sam',b'ple',b'str',b'ing',b'wit',b'hle',b'tte',b'rs']
,

如果您想在没有外部库的情况下实现相同的目标,那么您可以使用 bytes 或 bytesarray。

text = 'some text to convert in the chunks'
bin_str = bytes(text.encode('utf-8'))
n = 16 #no. of bytes for chunks    
chunks = [bin_str[i:i+n] for i in range(0,len(bin_str),n)]