2012-05-10 36 views
0

我有一个二进制文件来读取,我想以正确的十六进制形式显示结果。 代码如下:以正确的方式编写十六进制(在Python中)

file=open('myfile.chn', 'rb') 
while 1: 

     b=fic.readline(1) 
     print(b) 
file.close() 

,结果如下:

b'\xff' 
b'\xff' 
b'\x01' 
b'\x00' 
. 
. 

我可以为了改变这一结果做什么如下:

FF 
FF 
01 
00 
. 
. 

回答

5
"%02X" % ord(b'\xff') 

会返回字符串'FF'

+0

如果我想在前面1,保持0,我能怎么做?例如,我得到1而不是01. – Smith

+0

@史密斯:更新。 –

1

,以满足您保持前导零的要求:

>>> import binascii 
>>> binascii.hexlify(b'\x0f').decode().upper() 
'0F' 

还与多个字节连续:

>>> binascii.hexlify(b'\xff\x01\x00\xaf').decode().upper() 
'FF0100AF'