-2
我有這樣的十六進制列表 ['0x1','0x3','0x2','0x0','0x0','0x10','0x4 」,‘爲0x0’,‘爲0x0’,‘0xFA迴應’,‘爲0x4’]如何將十六進制值列表轉換爲python中的字節數組
,我打算通過USB發送,所以我需要轉換成的ByteArray,有沒有辦法在Python可用?
我有這樣的十六進制列表 ['0x1','0x3','0x2','0x0','0x0','0x10','0x4 」,‘爲0x0’,‘爲0x0’,‘0xFA迴應’,‘爲0x4’]如何將十六進制值列表轉換爲python中的字節數組
,我打算通過USB發送,所以我需要轉換成的ByteArray,有沒有辦法在Python可用?
,可以通過一個簡單的線條表達來解決
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]
感謝@koalo您的回覆,一個小的更正是使用bytearray而不是字節,我不確定它是否由於我的版本的python(我使用2.7),使用字節給我int數組以某種方式:( –
@downvoter:這是一個有效的問題,爲什麼downvote? – zengr
我沒有投票:),可能是因爲缺乏研究問這個問題。 –
它不是這個問題的重複,因爲他有領先的'0x' – koalo