符号付き32ビットieee754浮動小数点数の単純なリストであるバイナリファイルがあります。それらは何も分離されておらず、EOFまで次々に表示されます。
このファイルからどのように読み取り、浮動小数点数として正しく解釈しますか?
read(4)
を使用してみましたが、ASCIIエンコードの文字列に自動的に変換されます。
また、bytearray
を使用してみましたが、必要に応じて一度に4バイトではなく、一度に1バイトしか使用できません。
struct.unpack('f', file.read(4))
一度に複数を開梱することもできます。これにより、より高速になります。
struct.unpack('f'*n, file.read(4*n))
struct.unpack を覗いてみてください。次のようなものが機能する可能性があります...
f = struct.unpack('f', data_read)
import struct
(num,) = struct.unpack('f', f.read(4))