【发布时间】:2012-09-05 20:29:15
【问题描述】:
我需要读取二进制文件中某个字符串的位置,然后对后面的字节进行操作。字符串是 '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。我开始旋转 - 只是挂起 - 当我通读整个文件时,我什至没有退出。
【问题讨论】:
-
@Jan-Philip - 谢谢!我可能应该考虑调整其中之一。不过,首先也是最重要的,stackoverflow.com/a/6822761/714478 这个答案让我意识到我只是附加到了双端队列的错误一侧,而我上面的方法,经过更正,效果很好!
标签: python