1

読み取るバイナリファイルがあり、結果を16進数の適切な形式で表示したいと思います。次のようなコード:

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  
.  
.
4

2 に答える 2

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

文字列を返します'FF'

于 2012-05-10T10:11:27.290 に答える
2

先行ゼロを維持するという要件を満たすには、次のようにします。

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

連続する複数のバイトでも機能します。

>>> binascii.hexlify(b'\xff\x01\x00\xaf').decode().upper()
'FF0100AF'
于 2012-05-10T10:20:16.360 に答える