2013-03-14 121 views
0

从文件中读取时,如果我使用或ord()chr(),我会不断得到错误。可能是什么原因?从Python中的文件中读取`byte`与`bytearray`的影响

+0

'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

回答

0

如果读取的一个byte从文件,将它表示为一个字节的字符(和应该使用ord()与它):如果读取的字节的阵列

>>> print(index_file.read(1)) 
b'\x0a' 

,即bytearray,每个构件该阵列的将是简单int(你应该使用chr()吧):

>>> print(index_file.read(2)[0]) 
10 
+0

在上述两种情况下,您都会读取一个“字节”对象。 'bytearray'是一个* mutable *类型,否则类似于* immutable *'bytes'。对于这两种类型,索引/迭代都会返回0-255范围内的整数。 – eryksun 2013-03-14 13:30:00