binparser プログラム仕様
バイナリファイルの読み込みと検索機能を提供するモジュール。
このモジュールは、バイナリファイルから特定のオフセットとサイズでデータを読み込んだり、 特定のデータ型(整数、浮動小数点数、ASCII文字列など)の値をファイル内から検索したりするための ユーティリティ関数群を提供します。エンディアンの指定も可能です。
関連リンク: binparser.py 技術ドキュメント
- converter.binparser.get_data(bin_data, offset, size, vartype, endian='little', varname=None)[ソース]
バイナリデータから指定されたオフセット、サイズ、型でデータを読み込みます。
指定されたエンディアン(リトルまたはビッグ)とデータ型(float32、uint16など、または'str')に従って、 バイト列をPythonの対応する型に変換します。
- パラメータ:
- 戻り値:
読み込まれたデータ。型は vartype に依存。読み込み失敗時は None。
- 戻り値の型:
- 例外:
ValueError -- 未対応のエンディアンまたはデータ型が指定された場合、あるいはサイズが不正な場合。
- converter.binparser.load_bin_file(file_path)[ソース]
指定されたパスのバイナリファイルを読み込み、その内容を返します。
ファイル全体をバイト列として読み込みます。
- 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')。
tolerance (float) -- 浮動小数点数比較における許容誤差。デフォルトは1e-6。
varname (str) -- 検索対象の変数名 (デバッグ用)。デフォルトは 'not given'。
- 戻り値:
一致するデータが発見されたオフセットのリスト。
- 戻り値の型:
- 例外:
ValueError -- 未対応のエンディアンまたはデータ型が指定された場合、あるいはサイズが不正な場合。