我需要读取二进制文件中某个字符串的位置,然后对后面的字节进行操作。字符串是'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
. 我结束了旋转 - 只是挂起 - 当我通读整个文件时,我什至没有退出。