Python中将二进制串转换为通用字符串有以下两种方法:
1. 使用 Python 自带 codecs 模块中的解码功能
在 Python 中,我们可以使用内置的codecs模块将二进制串转换为通用字符串。其使用方法如下:
import codecs
binary_str = b'00110010 00110000 00110030 00110031'
universal_str = codecs.decode(binary_str.replace(b' ', b''), 'hex').decode('utf-8')
print(universal_str) # '2001'
上述代码中,首先导入了 Python 自带的 codecs 模块,接着定义了一个二进制字符串 binary_str
,其中间由空格隔开的每 8 位二进制码通过replace函数替换成没有空格的二进制码;然后通过 codecs.decode()
函数将二进制数据解码为unicode字符串,最后通过 decode()
方法将 Unicode 字符串转换为普通字符串。
2. 利用 struct 模块进行解包
使用Python内置的 struct 模块,可以逐个解析二进制串,然后转换成字符串。其使用方法如下:
import struct
binary_str = b'00110010 00110000 00110030 00110031'
pack_str = ''.join(['B']*len(binary_str.replace(b' ', b''))) # 按8位分割
universal_str = struct.pack(pack_str, *binary_str.replace(b' ', b''))
print(universal_str.decode('utf-8')) # '2001'
上述代码中,我们首先导入内置模块 struct
,接着定义了一个二进制字符串 binary_str
,使用了 str.replace()
函数将其中的空格替换成空字符串。然后,根据二进制组成,每 8 位被使用了一个 B 字符串组成的列表,然后利用 struct.pack()
函数按照 8 位组成的组建,将二进制以此解析然后生成通用的 Unicode 字符串。最后,最终的字符串 universal_str
通过 decode()
方法转换成普通的字符串。
示例说明:
假设现在我们有一个二进制串:b'01101111 01101001'
,我们可以使用上述第一种方法,逐个将其中的二进制码转换成 utf-8 编码的字符串,最终得到的通用字符串为 'oi'
。
假设现在我们有一个二进制串:b'1101000 1100101 1101100 1101100 1101111'
,我们可以使用上述第二种方法逐个将其中的二进制码转换成普通字符串,最终得到的通用字符串为 'hello'
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python二进制串转换为通用字符串的方法 - Python技术站