Andru Asked:2020-06-08 23:16:41 +0000 UTC2020-06-08 23:16:41 +0000 UTC 2020-06-08 23:16:41 +0000 UTC 如何在python中以二进制形式写入字节字符串? 772 如何在 Python 控制台中输入字符串 00000110001110001 以便将其视为两个字节。有很多这样的行。 python 2 个回答 Voted Best Answer jfs 2020-06-09T00:00:41Z2020-06-09T00:00:41Z 要将使用二进制数字写入为文本“01”的位转换为字节: >>> bits = '00000110001110001' >>> int(bits, 2).to_bytes((len(bits.lstrip('0')) + 7) // 8, 'big') b'\x0cq' 如果前导零很重要,则删除lstrip. kombat 2020-06-09T16:19:41Z2020-06-09T16:19:41Z def text_to_bits(text, encoding='utf-8', errors='surrogatepass'): bits = bin(int.from_bytes(text.encode(encoding, errors), 'big'))[2:] return bits.zfill(8 * ((len(bits) + 7) // 8)) def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'): n = int(bits, 2) return n.to_bytes((n.bit_length() + 7) // 8, 'big').decode(encoding, errors) or '\0' print(text_to_bits('kolya')) print(text_from_bits('0110101101101111011011000111100101100001'))
要将使用二进制数字写入为文本“01”的位转换为字节:
如果前导零很重要,则删除
lstrip.