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