我试图让python将十六进制字符串打印到屏幕上,而不是将其转换为ascii字符。
>>> x=b'\x5e\x2e\x6d'
>>> x
'^.m'
有没有办法以'\x5e\x2e\x6d'
代替'^.m'
非常感谢任何帮助。
答案 0 :(得分:5)
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'