Skip to main content
 首页 » 编程设计

python之在 Python3 中,当我读取二进制文件时,为什么 'b' 会添加到我的内容前面

2025年05月04日17hnrainll

例如我正在尝试读取一个文件,如下所示

fd = open('mydb.dbf', 'rb') 
print(fd.read(1)) 

输出是:

b'\x03'

我只希望'\x03'。额外的字符来自哪里?

请您参考如下方法:

没有多余的字符。您有一个 bytes 对象,其内容是单字节 \x03。

print 函数打印任何对象的 str 表示。 bytes 对象打印为 b'\x03'。但是 b 与引号(或者,就此而言,反斜杠、x 或两位数)一样,都不是值的一部分。

要让自己相信这个事实,请尝试 print(len(my_bytes)) 或 print(my_bytes[0])。长度为1;第一个值是(字节)数字 3。

(如果您不想要 bytes 对象,则不应该以二进制模式打开文件。但是,考虑到第一个字符是 control-C,您可能 确实想要一个bytes对象。)