2012-02-21 9 views
1

左パッドの六角リスト

は '0x8c 0x0のは、' 'になり8C 00'

v = b'\x8c\x00' 
' '.join([hex(i) for i in v]) 

このようなことを

/バリー

+0

'[hex]は(i)は'有効なコードではありません。あなたは 'hex(i)'を意味しますか? – phihag

+0

無効なコードが修正されました! – Baz

+0

はい、python 3を使用しています。 – Baz

答えて

3
v = b'\x8c\x00' 
print(' '.join(['{:02x}'.format(i) for i in v])) 

収率

8c 00 
0

(使用していると仮定すると、 Pythonの3.xの)

一つのオプションは、16進文字列に変換するためにbinascii.hexlify()を使用し、必要に応じて第二段階にスペースを挿入することです:

s = binascii.hexlify(v) 
s = b" ".join(s[i:i + 2] for i in range(0, len(s), 2)) 

これは、第2ステップでsからb'8c00'を最初に、b'8c 00'に設定します。 bytesの代わりにstrが必要な場合は、s.decode("ascii")を使用できます。