Сохранение последовательности байтов при переводе из строки в bytearray - PullRequest
0 голосов
/ 17 марта 2019

Я получаю строку, которая формируется из сообщений разных типов. Меня интересует сообщение, которое до появления в строке было в format bytearray, а теперь приходит в format str. Например, мне нужно перевести 001bc5045000043a, полученный в str format, , в формат байтов, сохранив числа из этой последовательности в байтовый массив .

1 Ответ

0 голосов
/ 17 марта 2019

Чтобы преобразовать строку шестнадцатеричных цифр в байтовый массив, предполагая две шестнадцатеричные цифры на байт, используйте bytearray.fromhex :

>>> h = '001bc5045000043a'
>>> ba = bytearray.fromhex(h)
>>> ba
bytearray(b'\x00\x1b\xc5\x04P\x00\x04:')

Python будет представлять байты в качестве эквивалентного символа ASCII, если байт находится в диапазоне ASCII (0-127 / 0 - 0x7f), а символ печатается, следовательно, 0x3a отображается как ':'

>>> chr(int('3a', 16))
':'
...