2012-02-21 53 views
1

如何更改我的代碼在Python 3:左墊六角列表

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

,使得 '0x8c爲0x0' 變成 '8C 00'

/巴里

+0

'[六角](I)'是無效代碼。你的意思是'十六進制(i)'? – phihag 2012-02-21 16:30:43

+0

修復了無效的代碼! – Baz 2012-02-21 16:31:43

+0

是的,使用python 3。 – Baz 2012-02-21 16:32:37

回答

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

產生

8c 00 
0

(假設你正在使用Python的3.x的)

一種選擇是在第二步中使用binascii.hexlify()轉換爲十六進制字符串,然後插入空格如果需要的話:

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

這將在第二步中將s設置爲b'8c00'首先到b'8c 00'。如果您需要str而不是bytes,則可以使用s.decode("ascii")