2017-04-03 62 views
0

我需要從串口讀取數據,並將其插入到一個列表中的位置,從1到16轉換ser.read輸出到列表中的有效元素 - Python的

rxbuf[1:16] = ser.read(16) 

雖然我得到一個錯誤的如下:

TypeError: 'bytes' object does not support item assignment 

如果我打印串口輸出,

rxbuf=ser.read(16) 

輸出看起來是這樣的:

b'\xf2\x97\x00\x00\x8er\x9a\xc0\x14\xff\xff|:F\x18\x00' 

有沒有辦法將上述內容轉換並放置在列表中? 我需要的是rxbuf[1] = 0xF2, rxbuf[2] = 0x97

回答

0

試試這個

RXBUF = ser.read(16) RXBUF = ser.read(16).split( 「\」)---因爲你的反應是斯普利特 '\' 斜線 應該打印這樣的.... RXBUF [1] = 0xF2 RXBUF [2] = 0x97

https://www.mkyong.com/python/python-how-to-split-a-string/

+0

感謝Praful,你的回答促使我正確的答案。 rxbuf =''.join([hex(i)for i in rxbuf_len])。split()這是解決方案。 – CodeModeOn