Предполагая, что у вас есть строка байтов, такая как
"\ x12 \ x45 \ x00 \ xAB"
, и вы знаете количество байтов и их типтакже можно использовать этот подход
import struct
bytes = '\x12\x45\x00\xAB'
val = struct.unpack('<BBH', bytes)
#val = (18, 69, 43776)
Поскольку я указал в начале строки форматирования little endian (используя символ '<'), функция вернула десятичный эквивалент. </p>
0x12 = 18
0x45 = 69
0xAB00 = 43776
B равно одному байту (8 бит) без знака
H равно двум байтам (16 бит) unsigned
Более доступные символы и размеры байтов можно найти здесь
Преимущества:
Вы можете указатьболее одного байта и порядковый номер значений
Недостатки ..
Вам действительно необходимо знать тип и длину данных, с которыми вы имеете дело