2012-02-17 1 views
1

저는 Python에 익숙하지 않아서 PyUSB를 통해 USB 장치에서 값을 읽으려고합니다. 이제는 작동하지만 문제가 생겼습니다. 장치에서 데이터를 읽는 동안 PyUSB에 데이터를 읽는 끝점이 필요합니다. 이 종점은 16 진수 값을 통해 식별됩니다. 나는 데이터와 같은 ...' x81'과 0x81의 차이점

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

을 읽는다면 ... 나는 오류 "AttributeError를 'NoneType'개체가 어떤 속성 'bmAttributes을'이 없다"얻는다. 같은 데이터를 읽으면 ...

dev.read(0x81, ...) 

... 작동합니다.

그래서 간단한 질문입니다 : 0x81과 '\ x81'의 차이점은 무엇입니까? X81는 유니 코드에 해당 \

:-)

+1

하나는 존재하지 않는 문자를 참조하는 문자열이고 다른 하나는 제어 코드입니까? – Edwin

답변

7

파이썬 2.x에서 '\x81'은 값이 129 인 단일 바이트로 이루어진 바이트 테스트입니다. chr(129)을 호출하여 얻을 수도 있습니다.

0x81은 기본 16으로 작성된 정수 값 129입니다. 129으로 간단하게 작성할 수도 있습니다.

2

를 0x81은 유효한 16 진수 값이며, 81와 16 진수 자 하나 caracters.

+0

내 잘못, 유니 코드 caracter 아니, 그렇지 않으면 \ u로 표시됩니다. – Faylixe

2

첫 번째 문자는 특정 16 진수 값을 첫 번째 문자 위치에 넣은 문자열이고, 두 번째 문자는 정수입니다.

분명히 API 호출에는 확실히 정수가 필요합니다.

2

0x81은 요청하는 16 진수로 보내고 '\ x81'은 문자의 문자열로 보내고 있습니다. 그래서 두 번째 작품은 도움이되는 희망이며 실제로 당신이 묻고있는 것입니다 :)