我需要读取二进制文件中某个特定字符串之前的内容,并对其后的字节进行操作。该字符串是'colr'
(这是一个JPEG 2000文件),以下是我目前的代码:
from collections import deque
f = open('my.jp2', 'rb')
bytes = deque([], 4)
while ''.join(map(chr, bytes)) != 'colr':
bytes.appendleft(ord(f.read(1)))
如果这个有效:
bytes = deque([0x63, 0x6F, 0x6C, 0x72], 4)
print ''.join(map(chr, bytes))
(返回'colr'),我不确定为什么我的循环中的测试从未评估为True
。最终我一直在旋转 - 只是悬挂 - 当我读完整个文件时,我甚至没有获得退出。