我刚刚完成了霍夫曼压缩算法的创建。我使用bytearray()将压缩的文本从字符串转换为字节数组。我试图解压缩我的霍夫曼算法。我唯一担心的是,我无法将字节数组转换回字符串。我可以使用任何内置函数将字节数组(带有变量)转换回字符串吗?如果没有,有没有更好的方法可以将我的压缩字符串转换为其他字符串?我试图使用byte_array.decode(),我得到了:
print("Index: ", Index) # The Index
# Subsituting text to our compressed index
for x in range(len(TextTest)):
TextTest[x]=Index[TextTest[x]]
NewText=''.join(TextTest)
# print(NewText)
# NewText=int(NewText)
byte_array = bytearray() # Converts the compressed string text to bytes
for i in range(0, len(NewText), 8):
byte_array.append(int(NewText[i:i + 8], 2))
NewSize = ("Compressed file Size:",sys.getsizeof(byte_array),'bytes')
print(byte_array)
print(byte_array)
print(NewSize)
x=bytes(byte_array)
x.decode()
UnicodeDecodeError:“ utf-8”编解码器无法解码位置0:无效的起始字节中的字节0x88
答案 0 :(得分:2)
您可以使用.decode('ascii')
(为utf-8
留空)。
print(bytearray("abcd", 'utf-8').decode())
>>> abcd