Упражнение на 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 пробела или табуляция). Поэтому добавьте их перед "печатью". Эти места есть на первом изображении;)

Другие вопросы по тегам