如何将字节数组转换回字符串



我正在编写一个霍夫曼编码程序。到目前为止,我只写了压缩部分:正如预期的那样,它接受我想要压缩的文本,为每个字符创建一个代码,并用各自的代码替换每个字符。这是我的字符串格式的压缩文本-我使用以下代码将此字符串转换为字节数组:

def make_byte_array(self, padded_text):
byte_array = bytearray()
for i in range(0, len(padded_text), 8):
byte_array.append(int(padded_text[i:i + 8], 2))

return byte_array

然后,我通过执行字节(byte_array(将byte_aarray保存到.bin文件中。我想现在能够打开这个二进制文件,读取里面的byte_array,并将其转换回压缩文本的字符串格式,以便能够解压缩它。问题是,每当我打开并读取这个二进制文件时,我都会得到这样的东西:

b’\xad";\xfdK\xa8w\xc1\xec\xcb\xe5(\x1f\x1f\x92'

我该如何将其转换回压缩文本的字符串格式?

如果s是该字节字符串:

for x in s:
print(f'{x:08b}')

您可以使用0和1的字符串执行您喜欢的操作,而不是print

通过0和1个字符的字符串进行编码和解码是不必要的低效。您应该直接使用位运算符(<<>>|&(来组装和反汇编字节。

相关内容

  • 没有找到相关文章

最新更新