我认为binascii是我正在寻找的模块,但我似乎无法得到我正在寻找的确切结果。
这就是我想做的。我想转换:
>>> s = '356a192b7913b04c54574d18c28d46e6395428ab'
>>> print len(s)
40
到
>>> hs = '\x35\x6a\x19\x2b\x79\x13\xb0\x4c\x54\x57\x4d\x18\xc2\x8d\x46\xe6\x39\x54\x28\xab'
>>> print len(hs)
20
有没有人知道一种很酷(或者说,很实用)的方法?
最佳答案
在所有版本的python中,都可以使用函数binascii.a2b_hex()
(也称为binascii.unhexlify()
):
>>> import binascii
>>> s = '356a192b7913b04c54574d18c28d46e6395428ab'
>>> binascii.a2b_hex(s)
'5j\x19+y\x13\xb0LTWM\x18\xc2\x8dF\xe69T(\xab'
在python 3.x中,可以使用
bytes.fromhex(s)
。在python 2.x中,可以使用
hex
str to str codec:>>> s.decode("hex")
'5j\x19+y\x13\xb0LTWM\x18\xc2\x8dF\xe69T(\xab'
编解码器内部调用
binascii.a2b_hex()
。