Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
例如,我正在尝试按如下方式读取文件
fd = open('mydb.dbf', 'rb') print(fd.read(1))
输出是:
b'\x03'
我只希望'\x03'。额外的字符来自哪里?
没有多余的字符。您有一个bytes对象,其内容是单字节\x03。
bytes
\x03
该print函数打印str任何对象的表示。一个bytes对象打印为b'\x03'. 但这b与引号一样(或者,就此而言,反斜杠、x 或两位数)不再是值的一部分。
print
str
b
要让自己相信这一事实,请尝试print(len(my_bytes))或print(my_bytes[0])。长度为1; 第一个值是(字节)数字3。
print(len(my_bytes))
print(my_bytes[0])
1
3
(如果您不想要bytes对象,则不应该以二进制模式打开文件。但是,考虑到第一个字符是 control-C,您可能确实想要bytes对象。)