Python如何获取文件内容为二进制文本?解决rb模式返回Bytes对象问题
文件转二进制文本的正确实现方式
你当前的代码读取到的是bytes对象,Python打印该对象时会以ASCII可打印字符的形式展示(带b前缀),这并不是你需要的纯二进制字符串(如0110100001100101...这类格式)。
要得到目标二进制文本,你可以将读取到的每个字节转换为8位的二进制字符串,再拼接起来,具体代码如下:
with open("myfile.txt", "rb") as fp: data = fp.read() # 将每个字节转为8位二进制字符串,拼接成完整的二进制文本 binary_text = ''.join(format(byte, '08b') for byte in data) print(binary_text)
代码说明
format(byte, '08b'):把单个字节(范围0-255)转换为8位二进制字符串,08表示不足8位时自动在前面补0,确保每个字节对应完整的8位二进制。''.join(...):将所有字节的二进制字符串拼接成一个连续的长字符串,得到最终的二进制文本。
如果希望每个字节的二进制之间用空格分隔(提升可读性),可以修改拼接方式:
binary_text = ' '.join(format(byte, '08b') for byte in data)
内容的提问来源于stack exchange,提问作者user22155941
相关产品推荐
相关产品推荐

