Python 3.x 中如何将二进制转化成字符串


现在是想实现这样一个功能:

对文本文件(可能包含中英文等任意字符)转化成二进制,对二进制进行操作(异或),之后得到的结果想再转回到字符串的形式。例如:

文本文件的内容是:


 python学习中

对其二进制处理后的结果为:


 ['0b101010', '0b1010111', '0b100001', '0b11000', '0b1110101', '0b101010', '0b1101010', '0b10000', '0b10011011', '0b1000001', '0b1101100', '0b11011000', '0b11111110', '0b110001', '0b10110010']

想将其回成字符串的形式。

尝试了一些办法,好像都不行。(本来打算用str.decode,但是发现py3.x的版本只支持byte.decode,str不支持)求问大家有什么好的解决办法吗?

python 字符编码

加勒比海带 10 years ago

 In [7]: a=['0b101010', '0b1010111', '0b100001', '0b11000', '0b1110101', '0b101010', '0b1101010', '0b10000', '0b10011011', '0b1000001', '0b1101100', '0b11011000', '0b11111110', '0b110001', '0b10110010']

In [8]: ''.join([chr(int(x,base=2)) for x in a])
Out[8]: '*W!\x18u*j\x10\x9bAlØþ1²'

In [9]: bytearray([int(x,base=2) for x in a])
Out[9]: bytearray(b'*W!\x18u*j\x10\x9bAl\xd8\xfe1\xb2')

kenro answered 10 years ago

Your Answer