Подтвердить что ты не робот

Чтение 32-битной подписанной ieee 754 плавающих точек из двоичного файла с помощью python?

У меня есть двоичный файл, который является простым списком 32-битных чисел с плавающей запятой ieee754. Они ничем не разделены и просто появляются один за другим до EOF.

Как я прочитал бы из этого файла и правильно их интерпретировал бы как числа с плавающей запятой?

Я попытался использовать read(4), но он автоматически преобразует их в строку с кодировкой ascii.

Я также попытался использовать bytearray, но это занимает только 1 байт за раз, а не 4 байта за раз, сколько мне нужно.

4b9b3361

Ответ 1

struct.unpack('f', file.read(4))

Вы также можете распаковать несколько одновременно, что будет быстрее:

struct.unpack('f'*n, file.read(4*n))

Ответ 2

Взгляните на struct.unpack. Возможно, что-то вроде следующего...

f = struct.unpack('f', data_read)

Ответ 3

import struct
(num,) = struct.unpack('f', f.read(4))