【发布时间】:2019-12-22 02:40:16
【问题描述】:
如何在 Python 中逐字节读取文件,直到达到特定的字节序列?
对于读取特定类型文件以解析标头、扫描参数等的库,这种情况必须一直发生。
例如:我正在阅读PNG spec 并看到像素数据在字节序列IDAT 之后开始。
我可以这样读取文件:
with open('image.png', 'rb') as f:
byte = f.read(1)
while byte != '':
byte = f.read(1)
但由于我一次只读取一个字节,我无法直接查看IDAT(因为我只会得到I 而不是其他三个字节)。我无法按四个字节的块读取文件,因为它并不总是正确排列。
我可以想象跟踪最后四个字节,但认为也许有更优雅的方式?
【问题讨论】:
标签: python file png file-header