【发布时间】:2019-03-14 14:24:27
【问题描述】:
我对此进行了广泛的搜索,但找不到解决此问题的帖子。我从82001B014042 的调制解调器收到了一个简单的字符串。我想忽略82001B01 的前面的标头并解码十六进制数字4042。我的代码如下;
rxHEX = ser.readline()
print rxHEX #82001B014042
rxData = rxHEX[8:] #4042
print rxData
#rxData = "4042"
rxData = rxData.decode("hex")
#rxData = binascii.unhexlify(rxData)
print rxData
无论我使用.decode("hex") 还是binascii.unhexlify(rxData) 我都会收到
TypeError:找到非十六进制数字
如果我取消散列 #rxData = "4042" 它会返回 @S 这是我所期望的。
为什么它不能从调制解调器字符串接收到的内容起作用?
如果我只有
rxHEX = ser.readline()
print rxHEX
rxData = rxHEX[8:]
print rxData
I recieve
输出是
82001F014042
4042
【问题讨论】:
-
如果你打印
repr()?
标签: python