В общем, я бы порекомендовал вам использовать для этого модуль Python struct . Это стандартно для Python, и должно быть легко перевести спецификацию вашего вопроса в строку форматирования, подходящую для struct.unpack()
.
Обратите внимание, что если между полями или вокруг них есть «невидимые» отступы, вам необходимо выяснить это и включить их в вызов unpack()
, иначе вы прочитаете неправильные биты.
Чтение содержимого файла, чтобы что-то распаковать, довольно тривиально:
import struct
data = open("from_fortran.bin", "rb").read()
(eight, N) = struct.unpack("@II", data)
Распаковывает первые два поля, предполагая, что они начинаются в самом начале файла (без заполнения или посторонних данных), а также предполагая собственный порядок байтов (символ @
). Символ I
в строке форматирования означает «целое число без знака, 32 бита».