2017-09-13 103 views
-2

我有這樣的十六進制列表 ['0x1','0x3','0x2','0x0','0x0','0x10','0x4 」,‘爲0x0’,‘爲0x0’,‘0xFA迴應’,‘爲0x4’]如何將十六進制值列表轉換爲python中的字節數組

,我打算通過USB發送,所以我需要轉換成的ByteArray,有沒有辦法在Python可用?

+1

@downvoter:這是一個有效的問題,爲什麼downvote? – zengr

+2

我沒有投票:),可能是因爲缺乏研究問這個問題。 –

+1

它不是這個問題的重複,因爲他有領先的'0x' – koalo

回答

1

,可以通過一個簡單的線條表達來解決

input = ['0x1', '0x3', '0x2', '0x0', '0x0', '0x10', '0x4', '0x0', '0x0', '0xfa', '0x4'] 
result = bytes([int(x,0) for x in input]) 

結果是

b'\x01\x03\x02\x00\x00\x10\x04\x00\x00\xfa\x04' 

如果你實際上並不希望有一個字節數組,但整數數組,只是除去bytes()

result = [int(x,0) for x in input] 

結果是

[1, 3, 2, 0, 0, 16, 4, 0, 0, 250, 4]  
+0

感謝@koalo您的回覆,一個小的更正是使用bytearray而不是字節,我不確定它是否由於我的版本的python(我使用2.7),使用字節給我int數組以某種方式:( –

相關問題