Mam ten skrypt python2.7, który działa dobrze na "Raspberry Pi Zero W", emulując mysz na komputerze stacjonarnym i przesuwając mysz o 127 pikseli na północny zachód.
report = '\x00\x81\x81\x00'
with open('/dev/hidg1', 'rb+') as fd:
fd.write(report)
Teraz wypróbowałem to z pythonem3 i otrzymałem ten błąd
Traceback (most recent call last):
File "test.py", line 14, in <module>
fd.write(report)
TypeError: a bytes-like object is required, not 'str'
Znalazłem kilka rozwiązań z fd.write(report.encode())
, ale to powoduje przesłanie czegoś innego do komputera stacjonarnego. Nie tylko ruch myszy. Porusza się (nie 127 pikseli) i wykonuje kliknięcie prawym przyciskiem myszy. Nie tego chcę.
1 odpowiedź
Spróbuj - konwertuj report
na obiekt bajtów.
report = b'\x00\x81\x81\x00'
To różni się od poprzedniego rozwiązania, które wypróbowałeś -
>>> '\x00\x81\x81\x00'.encode()
b'\x00\xc2\x81\xc2\x81\x00'
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.
bytes
obiekt, który nie jest tym samym costr
.rb+
jest rzeczywiście odpowiednie.