Печать шестнадцатеричной строки - PullRequest
1 голос
/ 02 ноября 2010
print 'Payload: ', struct.unpack('%dB'%len(payload), payload)
print '%08x (%d bits) DATA: ' % (identifier, width), repr(payload)

Эти два оператора кода генерируют следующие результаты:

Payload: (125, 255, 255, 125, 255, 255, 125, 255)
18feef00 (29 bits) DATA: '}\xff\xff}\xff\xff}\xff'

Я хотел бы иметь ОДНУ конечную строку с правильными шестнадцатеричными данными, которая выглядит следующим образом:

7dffff7dffff7dff

1 Ответ

2 голосов
/ 02 ноября 2010
>>> tup = (125, 255, 255, 125, 255, 255, 125, 255)
>>> "".join('%02x' % i for i in tup)
'7dffff7dffff7dff'

Итак, в вашем случае вы можете использовать struct.unpack для создания кортежа, а затем использовать "".join() для построения строки.это строка '}\xff\xff}\xff\xff}\xff', тогда это работает без кортежа:

>>> s = '}\xff\xff}\xff\xff}\xff'
>>> "".join('%02x' % ord(c) for c in s)
'7dffff7dffff7dff'
...