我正在尝试读取表示为原始字节文件的Android yuv图像。
f = open(self.fn)
self.yuvArray = bytearray(f.read())
我知道该文件包含720K字节,但self.yuvArray
只有350K。
此外,在使用相同格式的多个文件尝试此操作后,所有文件都是720K字节长(在文件大小中验证,c#代码返回一个720k大小的数组),我注意到它们都是不同的大小,大约350K。
我试着看看它是否有某种压缩或某种东西找不到任何东西。 对我来说,获得正确的长度是至关重要的,无论它是否都存在,只是我看不到它。
如何将其读入720K大小的阵列?
答案 0 :(得分:2)
以二进制模式(b
)打开文件。
f = open(self.fn, 'rb')
否则,在Windows中,回车符,转换换行符,并且特定字节(26 == 0x1A)导致先前读取返回。
with open('testfile', 'wb') as f:
f.write('\r\n')
with open('testfile', 'r') as f:
assert f.read() == '\n' # converted
with open('testfile', 'wb') as f:
f.write(''.join(chr(i) for i in range(256)))
with open('testfile', 'r') as f:
assert len(f.read()) < 256 # len(..) == 26