打印十六进制字符串
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 个回答
3
>>> 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'