Ответ 1
struct.unpack('f', file.read(4))
Вы также можете распаковать несколько одновременно, что будет быстрее:
struct.unpack('f'*n, file.read(4*n))
У меня есть двоичный файл, который является простым списком 32-битных чисел с плавающей запятой ieee754. Они ничем не разделены и просто появляются один за другим до EOF.
Как я прочитал бы из этого файла и правильно их интерпретировал бы как числа с плавающей запятой?
Я попытался использовать read(4)
, но он автоматически преобразует их в строку с кодировкой ascii.
Я также попытался использовать bytearray
, но это занимает только 1 байт за раз, а не 4 байта за раз, сколько мне нужно.
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))