File 在python中从文件中读取'byte'与'bytearray'的含义

File 在python中从文件中读取'byte'与'bytearray'的含义,file,python-3.x,bytearray,byte,File,Python 3.x,Bytearray,Byte,如果我在文件中使用ord()或chr()的话,我从文件中读取字节时经常会出错。原因可能是什么?如果从文件中读取一个字节,它将表示为一个字节字符(您应该使用ord()): 如果您读取一个字节数组,即bytearray,数组的每个成员都将是简单的int(您应该使用chr()): 在上述两种情况下,您都读取字节对象。bytearray是一种可变类型,在其他方面类似于不可变的字节。对于这两种类型,索引/迭代返回一个范围为0-255的整数。ord给出字符串的序号。在3.x中,将其用于字节是毫无意义的。当您

如果我在文件中使用
ord()
chr()
的话,我从文件中读取
字节时经常会出错。原因可能是什么?

如果从文件中读取一个
字节,它将表示为一个字节字符(您应该使用
ord()
):

如果您读取一个字节数组,即
bytearray
,数组的每个成员都将是简单的
int
(您应该使用
chr()
):


在上述两种情况下,您都读取
字节
对象。
bytearray
是一种可变类型,在其他方面类似于不可变的
字节。对于这两种类型,索引/迭代返回一个范围为0-255的整数。
ord
给出字符串的序号。在3.x中,将其用于
字节
是毫无意义的。当您对
字节进行索引或迭代时
会得到0-255范围内的整数,例如
b'a'[0]==97
列表(b'\x01\x02\x03')===1,2,3]
>>> print(index_file.read(1))
b'\x0a'
>>> print(index_file.read(2)[0])
10