如何将Python中的字符串转换为ASCII十六进制表示符?
例如:我想导致'\x00\x1b\xd4}\xa4\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'在001bd47da4f3.
>>> text = '\x00\x1b\xd4}\xa4\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'.rstrip('\0')
>>> print "".join("%02x" % ord(c) for c in text)
001bd47da4f3
Run Code Online (Sandbox Code Playgroud)
根据martineau的评论,这是Python 3的方式:
>>> "".join(format(ord(c),"02x") for c in text)
Run Code Online (Sandbox Code Playgroud)
使用python 2.x,您可以将字符串编码为十六进制表示.它不适用于python3.x
>>> print '\x00\x1b\xd4}\xa4\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'.encode("hex")
'001bd47da4f300000000000000000000'
Run Code Online (Sandbox Code Playgroud)
如果你有一个包含转义的文字字符串(所以基本上是r'\ x00\x1b'等等)或者没有完全清楚.此外,还不清楚为什么你不期望尾随零,但你可以使用.rstrip("\ x00")删除编码之前的零