バイナリ ファイル内の特定の文字列のポイントまで読み取り、その後のバイトを処理する必要があります。文字列は'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
。私はぐるぐる回ってしまい、ぶら下がっているだけです。ファイル全体を読んでも、終了することさえできません。