将Python字符串转换为其ASCII表示形式

Man*_*aux 6 python

如何将Python中的字符串转换为ASCII十六进制表示符?

例如:我想导致'\x00\x1b\xd4}\xa4\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'001bd47da4f3.

Rya*_*rom 6

>>> 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)

  • +1因为它是最好的答案而且它不依赖于Python版本. (2认同)

Ivo*_*ijk 5

使用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")删除编码之前的零