如何在python中将[0x01,0xFF,.....]作为字符串''01 FF ....'返回

jor*_*bor 1 python hex

我对此感到困惑.如何打印十六进制字节:

 [0x05, 0x06, 0x40, 0xFD, 0x05]
Run Code Online (Sandbox Code Playgroud)

在控制台中这样:

 05 06 40 FD 05    
Run Code Online (Sandbox Code Playgroud)

我将如何在to_string函数中使用它:

def to_string(bytes):
    cmd = '%02X'.join(chr(b) for b in self.bytes) #does not work obviously
    return cmd

print to_string([0x05, 0x06, 0x40, 0xFD, 0x05])
Run Code Online (Sandbox Code Playgroud)

我想我可以从你的答案中概括出来.

Mar*_*ers 6

使用%02X 字符串格式化程序:

>>> print '%02X' % 0x05
05
>>> for i in [0x05, 0x06, 0x40, 0xFD, 0x05]:
...     print '%02X' % i,
...
05 06 40 FD 05
Run Code Online (Sandbox Code Playgroud)

或者使它成为一个字符串:

>>> ' '.join(['%02X' % i for i in [0x05, 0x06, 0x40, 0xFD, 0x05]])
'05 06 40 FD 05'
Run Code Online (Sandbox Code Playgroud)