2016-10-20 6 views
1

に私は、1,2,4,8バイトの整数と4,8バイト浮動点の組み合わせだけでなく、異なるエンコーディングを持つ様々な文字列を持っているバイナリファイルを解析しようとしています。 4バイトまたは8バイトを浮動小数点に変換するにはどうすればよいですか?Pythonの:バイト浮動小数点

structパッケージを使用するのが最適ですか? 浮動小数点を取得するには、構造体パッケージを使用するにはどうすればよいですか? 4バイト、8バイトで

は、どのように私は2バイトまたは4バイトの整数で同じことを行うだろうか? 何私が現在使用していることは、連続して複数のint型と浮動小数点数のための構造体を使用することがより最適でしょう

int.from_bytes(binary_file.read(2), byteorder='little', signed=False) 
int.from_bytes(binary_file.read(4), byteorder='little', signed=False) 

のですか?

答えて

1

structモジュールは、はるかにこれを行うための最も明白な/正しい方法です。 the docsを読むと、必要なすべてのフォーマットコードが数秒で見つかります。

int.from_bytesが一般的です(任意の幅を扱います)。しかし、正確な幅を知っている場合は、structを使うほうが良いでしょう。同じフォーマットの場合は、あらかじめ構築されたstruct.Structオブジェクトを使用すると、モジュールレベルの関数よりも高速に実行されます。

関連する問題