我正在寻找一种将字符串转换为十六进制字符串的好方法。
例如:
'\x01\x25\x89'
- > '0x012589'
'\x25\x01\x00\x89'
- > '0x25010089'
以下是我的想法:
def to_hex(input_str):
new_str = '0x'
for char in input_str:
new_str += '{:02X}'.format(ord(char))
return new_str
似乎有一种更好的方法可以做到这一点,我还没有找到。
答案 0 :(得分:6)
您需要binascii模块。
>>> binascii.hexlify('\x01\x25\x89')
'012589'
>>> binascii.hexlify('\x25\x01\x00\x89')
'25010089'
答案 1 :(得分:5)
只需编码为十六进制:
In [5]: s= "\x01\x25\x89"
In [6]: s.encode("hex")
Out[6]: '012589'
In [7]: s = "\x25\x01\x00\x89"
In [8]: s.encode("hex")
Out[8]: '25010089'