我正在寻找一种将字符串转换为十六进制字符串的好方法.
例如:
'\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
似乎有一种更好的方法可以做到这一点,我还没有找到.
你想要binascii模块.
>>> binascii.hexlify('\x01\x25\x89') '012589' >>> binascii.hexlify('\x25\x01\x00\x89') '25010089'
只需编码为十六进制:
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'