Leyendo enteros de un archivo binario en Python

Estoy tratando de leer unBMP archivo en Python. Sé que los dos primeros bytes indican la firma BMP. Los siguientes 4 bytes son el tamaño del archivo. Cuando ejecuto:

fin = open("hi.bmp", "rb")
firm = fin.read(2)  
file_size = int(fin.read(4))  

Yo obtengo:

ValueError: literal no válido para int () con base 10: 'F # \ x13'

Lo que quiero hacer es leer esos cuatro bytes como un entero, pero parece que Python los está leyendo como caracteres y está devolviendo una cadena, que no se puede convertir en un entero. ¿Cómo puedo hacer esto correctamente?

Respuestas a la pregunta(6)

Su respuesta a la pregunta