pythonでバイナリを扱う
一人アドベントカレンダー4日目です。
たまたまpythonでバイナリを扱ったのでそれに関してのメモを書いていきます。
基本的な扱い
基本的にはstructで扱えばいいと思います。
パックするときはpackを使い、フォーマット文字列を指定します。
アンパックするときにはunpackを使い、同じフォーマット文字列を指定すれば戻すことができます。
import struct x = struct.pack('II', 1000, 0) print(x) >> b'\xe8\x03\x00\x00\x00\x00\x00\x00' print(struct.unpack('II', x)) >> (1000, 0)
今回はバイナリデータを読み込むためにこれを使いました。
f = open(hoge.txt, "rb") offset, length = struct.unpack("II",f.read(8))
こんな感じでほしいデータを引っ張ることができました。
参考情報
やはりドキュメントが一番で、あまり日本語では関連記事はありません。
7.1. struct — バイト列をパックされたバイナリデータとして解釈する — Python 3.6.5 ドキュメント
PythonでバイナリをあつかうためのTips - Qiita