¿Cómo se leen los bytes de un archivo en Python?

Similar aesta pregunta, estoy intentando leer un encabezado de etiqueta ID3v2 y tengo problemas para descubrir cómo obtener bytes individuales en Python.

Primero leí los diez bytes en una cadena. Luego quiero analizar las piezas individuales de información.

Puedo capturar los dos caracteres de número de versión en la cadena, pero entonces no tengo idea de cómo tomar esos dos caracteres y obtener un entero de ellos.

El paquete de estructura parece ser lo que quiero, pero no puedo hacerlo funcionar.

Aquí está mi código hasta ahora (soy muy nuevo en Python por cierto ... así que no se preocupe):

def __init__(self, ten_byte_string):
        self.whole_string = ten_byte_string
        self.file_identifier = self.whole_string[:3]
        self.major_version = struct.pack('x', self.whole_string[3:4]) #this 
        self.minor_version = struct.pack('x', self.whole_string[4:5]) # and this
        self.flags = self.whole_string[5:6]
        self.len = self.whole_string[6:10]

La impresión de cualquier valor excepto es obviamente una mierda porque no están formateados correctamente.

Respuestas a la pregunta(4)

Su respuesta a la pregunta