Сохранение последовательности байтов при переводе из string в bytearray

#python #hex #byte

#python #шестнадцатеричный #байт

Вопрос:

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

Ответ №1:

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

 >>> h = '001bc5045000043a'
>>> ba = bytearray.fromhex(h)
>>> ba
bytearray(b'x00x1bxc5x04Px00x04:')
  

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

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

Комментарии:

1. и 0x50 отображается как ‘P’?