我是Python新手,我正试图通过PyUSB从USB设备读取一些值。嗯,它现在有效,但我遇到了一些麻烦:从设备读取数据时,PyUSB需要一个端点来读取数据。此端点通过十六进制值标识。如果我读取数据......
dev.read('\x81', ...)
...我收到错误“AttributeError:'NoneType'对象没有属性'bmAttributes'”。如果我读取数据......
dev.read(0x81, ...)
......它有效。
所以我的简单问题是:0x81和'\ x81'之间有什么区别?
: - )
答案 0 :(得分:7)
在Python 2.x中,'\x81'
是一个字节字符串,由一个值为129的字节组成。您也可以通过调用chr(129)
来获取它。
0x81
是一个用16进行写的整数,值为129.你也可以通过简单地写129
来获得它。
答案 1 :(得分:2)
\ x81对应于具有81十六进制代码的unicode字符,0x81是有效的十六进制值。
答案 2 :(得分:2)
第一个是强制进入第一个字符位置的特定十六进制值的字符串,第二个是整数。
显然,API调用肯定需要一个整数。
答案 3 :(得分:2)
0x81发送一个它要求的十六进制数字,而'\ x81'发送一串字符。这就是为什么第二个有效,希望有所帮助,实际上是你所要求的:)