例如,我正在尝试按如下方式读取文件
fd = open('mydb.dbf', 'rb')
print(fd.read(1))
Run Code Online (Sandbox Code Playgroud)
输出是:
B '\ X03'
我只希望'\ x03'.额外角色来自哪里?
没有额外的性格.你有一个bytes对象,其内容是单个字节\x03.
该print函数打印str任何对象的表示.甲bytes对象打印出作为b'\x03'.但这b不是价值的一部分而是引号(或者,就此而言,反斜杠,x或两位数).
为了说服自己这个事实,试试print(len(my_bytes))或print(my_bytes[0]).长度是1; 第一个值是(字节)数字3.
(如果你不想要一个bytes对象,你不应该以二进制模式打开文件.但是,考虑到第一个字符是一个控件-C,你可能确实想要一个bytes对象.)