Метод read
возвращает последовательность байтов в виде строки. Чтобы преобразовать строковую последовательность байтов в двоичные данные, используйте встроенный модуль struct
: http://docs.python.org/library/struct.html.
import struct
print(struct.unpack('i', fin.read(4)))
Обратите внимание, что unpack
всегда возвращает кортеж, поэтому struct.unpack('i', fin.read(4))[0]
дает целочисленное значение, которое вы ищете.
Вероятно, вам следует использовать строку формата '<i'
(<- это модификатор, который указывает порядок байтов в младшем порядке, а также стандартный размер и выравнивание - по умолчанию используется порядок, размер и выравнивание байтов платформы). В соответствии со спецификацией формата BMP байты должны быть записаны в порядке байтов Intel / little-endian. </p>