0
从文件中读取时,如果我使用或ord()
或chr()
,我会不断得到错误。可能是什么原因?从Python中的文件中读取`byte`与`bytearray`的影响
从文件中读取时,如果我使用或ord()
或chr()
,我会不断得到错误。可能是什么原因?从Python中的文件中读取`byte`与`bytearray`的影响
如果读取的一个byte
从文件,将它表示为一个字节的字符(和应该使用ord()
与它):如果读取的字节的阵列
>>> print(index_file.read(1))
b'\x0a'
,即bytearray
,每个构件该阵列的将是简单int
(你应该使用chr()
吧):
>>> print(index_file.read(2)[0])
10
在上述两种情况下,您都会读取一个“字节”对象。 'bytearray'是一个* mutable *类型,否则类似于* immutable *'bytes'。对于这两种类型,索引/迭代都会返回0-255范围内的整数。 – eryksun 2013-03-14 13:30:00
'ord'给出了一个字符串的序号。在3.x中使用'bytes'是相当没有意义的。当你索引或迭代'bytes'时,你得到的整数范围是0-255,例如'b'a'[0] == 97'或'list(b'\ x01 \ x02 \ x03')== [1,2,3]'。 – eryksun 2013-03-14 13:35:12