Как преобразовать шестнадцатеричную строку, начинающуюся с 0, в байты с определенной длиной в python - PullRequest
0 голосов
/ 25 октября 2018

Я хочу преобразовать:

'01' -> \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
'0001' -> \x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

Я пробовал что-то вроде этого:

int(data,16).to_bytes(16, byteorder='little')

, но это не работает, когда строка начинается с '00'.Есть ли другой способ?

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете использовать bytes.fromhex и bytes.ljust:

>>> bytes.fromhex('01').ljust(16, b'\0')
b'\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>> bytes.fromhex('0001').ljust(16, b'\0')
b'\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...