在Python3中,当我正在阅读二进制文件时,为什么“b”会成为我的内容的前缀?

时间:2013-04-05 23:11:21

标签: python

例如,我正在尝试按如下方式读取文件

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

输出结果为:

  

B '\ X03'

我只希望'\ x03'。额外角色来自哪里?

1 个答案:

答案 0 :(得分:6)

没有额外的角色。您有一个bytes对象,其内容是单个字节\x03

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

要说服自己,请尝试print(len(my_bytes))print(my_bytes[0])。长度为1;第一个值是(字节)数字3

(如果你不想要一个bytes对象,你不应该以二进制模式打开文件。但是,考虑到第一个字符是一个控件-C,你可能做了< / em>想要一个bytes对象。)