2012-02-21 4 views
1

Как изменить мой код в Python 3:Левой подушки шестигранного список

v = b'\x8c\x00' 
' '.join([hex(i) for i in v]) 

Таких вот 0x8c 0x0 'становится '8c 00'

/Barry

+0

'[гекс] (я)' не является действительным кодом. Вы имеете в виду 'hex (i)'? – phihag

+0

исправлен неверный код! – Baz

+0

есть, используя python 3. – Baz

ответ

3
v = b'\x8c\x00' 
print(' '.join(['{:02x}'.format(i) for i in v])) 

дает

8c 00 
0

(Предполагая, что вы используете Python 3.x.)

Одним из вариантов является использование binascii.hexlify() преобразовать в шестнадцатеричную строку и вставьте пробелы на второй стадии при необходимости:

s = binascii.hexlify(v) 
s = b" ".join(s[i:i + 2] for i in range(0, len(s), 2)) 

Это установит s на номер b'8c00' и до b'8c 00' на втором этапе. Если вам нужно str вместо bytes, вы можете использовать s.decode("ascii").

Смежные вопросы