1

我是 Python 新手,我正在尝试通过 PyUSB 从 USB 设备读取一些值。好吧,它现在可以工作了,但我遇到了一些麻烦:从设备读取数据时,PyUSB 需要一个端点来读取数据。该端点通过十六进制值标识。如果我读取数据...

dev.read('\x81', ...)

...我收到一个错误“AttributeError:'NoneType'对象没有属性'bmAttributes'”。如果我读取数据...

dev.read(0x81, ...)

... 有用。

所以我的简单问题是:0x81 和 '\x81' 有什么区别?

:-)

4

4 回答 4

11

在 Python 2.x 中,'\x81'是一个字节串,由一个值为 129 的字节组成。您也可以通过调用chr(129).

0x81是一个以 16 为底的整数,值为 129。您也可以通过简单的写129.

于 2012-02-17T22:46:34.900 回答
2

\x81 对应一个 unicode 字符,即 81 hexcode,0x81 是一个有效的十六进制值。

于 2012-02-17T22:45:30.273 回答
2

第一个是强制进入第一个字符位置的特定十六进制值的字符串,第二个是整数。

显然,API 调用肯定需要一个整数。

于 2012-02-17T22:46:13.130 回答
2

0x81 发送它要求的十六进制数字,而 '\x81' 发送一串字符。这就是为什么第二个有效的原因,希望对您有所帮助,实际上就是您要问的:)

于 2012-02-17T22:50:59.650 回答