Windowsアニメーションカーソル(.ani)のRIFFヘッダー構造を解析するサンプルコードです。実行するとシグネチャとチャンクのデータサイズ、RIFFまたはLISTの場合はフォーム/リストタイプを出力します。
RIFFファイルやaniファイルの構造はソース中コメントのURLを参考にしています。
#参考 #https://ja.wikipedia.org/wiki/ANI_(%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88) #https://www.gdgsoft.com/anituner/help/aniformat.htm from os import SEEK_CUR with open(r"C:\Windows\Cursors\aero_busy.ani", "rb") as f: while True: signature = f.read(4).decode("ascii") if len(signature) == 0: break dataSize = int.from_bytes(f.read(4), byteorder="little", signed=False) if signature in ("RIFF", "LIST"): formType = f.read(4).decode("ascii") else: formType = None f.seek(dataSize, SEEK_CUR) print((signature, dataSize, formType))