Упражнение на Python evdev: список доступных устройств
16.04 установлен с модулем evdev, Цель: воспроизвести пример на скриншоте:
Скриншот моих попыток:
Ошибка "IndentationError" сигнализирует о том, что нужно предпринять? Что можно сделать, чтобы воспроизвести список устройств на моем экземпляре 16.04? Если вы можете воспроизвести упражнение на своем боксе, укажите это в своем ответе.
EVDEV УСТАНОВИТЬ ПОДТВЕРЖДЕНИЕ:
>>> import evdev
>>> device = evdev.InputDevice('/dev/input/event0')
>>> print(device)
device /dev/input/event0, name "Logitech M325", phys "usb-3f980000.usb-1.3:1"
ОБНОВЛЕНИЕ: Ринзвинд подтолкнул предмет в правильном направлении (без 'IndentationError'):
>>> devices = [evdev.InputDevice(fn) for fn in evdev.list_devices()]
>>> import evdev
>>> devices = [evdev.InputDevice(fn) for fn in evdev.list_devices()]
>>> for device in devices:
... print(device.fn, device.name, device.phys)
... print(device.fn, device.name, device.phys)
...
Хотите знать, относится ли это наблюдение к устранению неполадок:
>>> import evdev
>>> devices = [evdev.InputDevice(fn) for fn in evdev.list_devices()]
>>> for device in devices: ... print(device.fn, device.name, device.phys) ...
>>> device = evdev.InputDevice('/dev/input/event3') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/dist-packages/evdev/device.py", line 129, in
__init__
fd = os.open(dev, os.O_RDONLY | os.O_NONBLOCK) OSError: [Errno 13] Permission denied: '/dev/input/event3'
Куда:
cat /proc/bus/input/devices
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input3
Продолжая искать предложения и рекомендации.
1 ответ
Python имеет обязательный отступ.
После строки с "для" вы должны сделать отступ (4 пробела или табуляция). Поэтому добавьте их перед "печатью". Эти места есть на первом изображении;)
