Python bytearray没有它应该的那么长

2024-10-04 11:25:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图读取一个Android yuv图像,它表示为原始字节文件

f = open(self.fn)
self.yuvArray = bytearray(f.read())

我知道这个文件包含720K字节,但是self.yuvArray只有350K字节。 此外,在尝试使用多个相同格式的文件(所有文件的长度都是720K字节)(在文件大小和c代码返回720K大小的数组中都进行了验证)之后,我注意到所有文件的大小都不同,大约350K

我试着看看是否是某种压缩,或者什么,找不到任何东西。 这是至关重要的,我收到正确的长度,无论它是否都在那里,只是我看不到它

如何将其读入720K大小的数组


Tags: 文件代码图像selfread字节格式数组
1条回答
网友
1楼 · 发布于 2024-10-04 11:25:08

以二进制模式(b)打开文件

f = open(self.fn, 'rb')

否则,在Windows中,回车符、换行符被转换,一个特定的字节(26==0x1A)导致前面的read return

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

相关问题 更多 >