我正在Python上編寫代碼以從RFID中讀取信息,但我該如何只留下十六進制部分?僅顯示十六進制字符串
代碼:
import serial as s
ser = s.Serial('COM8', 9600, timeout=10000)
rfid = ser.read(13).splitlines()
print(rfid)
輸出:
[b'\x024500F38EC7FF']
預期輸出:
4500F38EC7FF
我正在Python上編寫代碼以從RFID中讀取信息,但我該如何只留下十六進制部分?僅顯示十六進制字符串
代碼:
import serial as s
ser = s.Serial('COM8', 9600, timeout=10000)
rfid = ser.read(13).splitlines()
print(rfid)
輸出:
[b'\x024500F38EC7FF']
預期輸出:
4500F38EC7FF
如果你只想ASCII字符如果你想每一個字符爲整數的值,您可以分割字符串刪除前導0×02字符
>>> x = b'\x024500F38EC7FF'
>>> x[1:] # skip the first character
'4500F38EC7FF'
,
>>> [ord(c) for c in x]
[2, 52, 53, 48, 48, 70, 51, 56, 69, 67, 55, 70, 70]
或者如果你想要每個字符的十六進制表示,你可以使用類似於
>>> ' '.join('%02x' % ord(c) for c in x)
'02 34 35 30 30 46 33 38 45 43 37 46 46'
line = [b'\x024500F38EC7FF']
line[0][1:]
你的意思是這樣?
因爲splitlines()
回報你一個數組,這就是你看到print
儘量簡單print rfid[0]
,可能做你想做的。
>>> x = b'\x024500F38EC7FF'
>>> print(x)
4500F38EC7FF