如何在python中将十六进制打印到屏幕上

时间:2013-12-05 17:55:59

标签: python

我试图让python将十六进制字符串打印到屏幕上,而不是将其转换为ascii字符。

>>> x=b'\x5e\x2e\x6d'
>>> x
'^.m'

有没有办法以'\x5e\x2e\x6d'代替'^.m'

将其打印到屏幕上

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:5)

就Python而言,

b'\x5e\x2e\x6d'b'^.m'完全相同。但是,您可以按照以下方式格式化它:

>>> x = b'\x5e\x2e\x6d'
>>> print(''.join(map(r'\x{:x}'.format, bytearray(x))))
\x5e\x2e\x6d

或在Python3中

>>> print(''.join([r'\x{:x}'.format(c) for c in x]))
\x5e\x2e\x6d

或在Python2中

>>> print(''.join([r'\x{:x}'.format(ord(c)) for c in x]))
\x5e\x2e\x6d

答案 1 :(得分:3)

您需要将字符串编码为十六进制。

>>> x=b'\x5e\x2e\x6d'
>>> x
'^.m'
>>> x.encode("hex")
'5e2e6d'

答案 2 :(得分:1)

你想用另一个斜杠来转义斜杠:

'\\x5e'