如何将二进制文件打印为字节?

时间:2013-04-12 06:48:45

标签: python python-3.x byte

我做了

>>> b0 = open('file','rb')

然后

>>> b0.read(10)

给出

b'\xb8\xaaK\x1e^J)\xab_I'

如何将所有内容打印为纯十六进制字节?我想要

b'\xb8\xaa\x4b\x1e\x5e\x4a\x29\xab\x5f\x49'

(PS:可以将它打印得很漂亮吗?比如

B8 AA 4B 1E 5E 4A 29 AB 5F 49

或冒号分开。)

1 个答案:

答案 0 :(得分:4)

>>> s = b'\xb8\xaaK\x1e^J)\xab_I'
>>> ' '.join('{:02X}'.format(c) for c in s)
'B8 AA 4B 1E 5E 4A 29 AB 5F 49'

或者,更简洁:

>>> ' '.join(map('{:02X}'.format, s))
'B8 AA 4B 1E 5E 4A 29 AB 5F 49'