Вы можете использовать struct для получения чисел.
Использование таблицы Формат символов вы можете увидеть, что вам нужно "h"
для преобразования 2-байтового целого числа.
В конечном итоге вы можете использовать "<h"
, чтобы убедиться, что он будет использовать little-endian
import struct
# convert to bytes
data = "\x0C\x00Maximilianus\xf4\x01".encode('latin1')
# get short integer
number = struct.unpack('<h', data[:2])[0]
print('number:', number)
# skip number
data = data[2:]
# get string
#text = struct.unpack(f'{number}s', data[:number])[0] # use `number` to create `"12s"`
#print('text:', text.decode())
print('text:', data[:number].decode())
# skip string
data = data[number:]
# get short integer
number = struct.unpack('<h', data[:2])[0]
print('number:', number)
Кстати: это похоже на MessagePack , поэтому возможно для этого есть специальный модуль, но я его не знаю.