binparser プログラム仕様

バイナリファイルの読み込みと検索機能を提供するモジュール。

このモジュールは、バイナリファイルから特定のオフセットとサイズでデータを読み込んだり、 特定のデータ型(整数、浮動小数点数、ASCII文字列など)の値をファイル内から検索したりするための ユーティリティ関数群を提供します。エンディアンの指定も可能です。

関連リンク: binparser.py 技術ドキュメント

converter.binparser.get_data(bin_data, offset, size, vartype, endian='little', varname=None)[ソース]

バイナリデータから指定されたオフセット、サイズ、型でデータを読み込みます。

指定されたエンディアン(リトルまたはビッグ)とデータ型(float32、uint16など、または'str')に従って、 バイト列をPythonの対応する型に変換します。

パラメータ:
  • bin_data (bytes) -- 読み込み元のバイナリデータ。

  • offset (int) -- 読み込み開始オフセット。

  • size (int) -- 読み込むデータのバイトサイズ。

  • vartype (str) -- 読み込むデータの型 (例: 'float32', 'uint16', 'str')。

  • endian (str) -- エンディアンの指定 ('little' または 'big')。デフォルトは 'little'。

  • varname (str or None) -- 読み込むデータの変数名 (エラーメッセージ用)。デフォルトは None。

戻り値:

読み込まれたデータ。型は vartype に依存。読み込み失敗時は None。

戻り値の型:

int or float or str or None

例外:

ValueError -- 未対応のエンディアンまたはデータ型が指定された場合、あるいはサイズが不正な場合。

converter.binparser.load_bin_file(file_path)[ソース]

指定されたパスのバイナリファイルを読み込み、その内容を返します。

ファイル全体をバイト列として読み込みます。

パラメータ:

file_path (str) -- 読み込むバイナリファイルのパス。

戻り値:

ファイルの内容を表すバイト列。

戻り値の型:

bytes

converter.binparser.search_data(bin_data, itop, ilast, size, vartype, endian, value, tolerance=1e-06, varname='not given')[ソース]

バイナリデータ内で指定された値のデータを検索します。

指定された範囲、サイズ、データ型、エンディアンに従って、特定の値を検索し、 一致するデータのオフセットのリストを返します。 浮動小数点数の場合は tolerance を考慮した比較を行います。

パラメータ:
  • bin_data (bytes) -- 検索対象のバイナリデータ。

  • itop (int) -- 検索開始オフセット。

  • ilast (int) -- 検索終了オフセット。

  • size (int) -- 検索するデータのバイトサイズ。

  • vartype (str) -- 検索するデータの型 (例: 'float32', 'int16', 'str')。

  • endian (str) -- エンディアンの指定 ('little' または 'big')。

  • value (int or float or str) -- 検索する値。

  • tolerance (float) -- 浮動小数点数比較における許容誤差。デフォルトは1e-6。

  • varname (str) -- 検索対象の変数名 (デバッグ用)。デフォルトは 'not given'。

戻り値:

一致するデータが発見されたオフセットのリスト。

戻り値の型:

list[int]

例外:

ValueError -- 未対応のエンディアンまたはデータ型が指定された場合、あるいはサイズが不正な場合。