Имитация ключевого события с помощью Python для Linux - программирование
Подтвердить что ты не робот

Имитация ключевого события с помощью Python для Linux

Я пишу script для автоматизации работы конкретной модели. Когда модель выходит из строя, она ждет ввода пользователем (клавиша Enter). Я могу обнаружить, когда модель потерпела неудачу, но я не могу использовать python (в linux) для имитации события нажатия клавиши. Windows имеет библиотеку SendKeys, но мне было интересно, есть ли подобная библиотека для python в linux.

Спасибо!

4b9b3361

Ответ 1

Если "модель" работает графически (с системой окон X), предложенная xsendkey - это возможность или xsendkeycode. Если он работает текстовым способом (в окне терминала), pexpect.

Ответ 2

Посмотрите на https://github.com/SavinaRoja/PyUserInput его кросс-платформенный контроль для мыши и клавиатуры в python

Управление клавиатурой работает на системах X11 (linux) и Windows. Но никакой поддержки Mac (когда я написал этот ответ).

from pykeyboard import PyKeyboard
k = PyKeyboard()

# To Create an Alt+Tab combo
k.press_key(k.alt_key)
k.tap_key(k.tab_key)
k.release_key(k.alt_key)

Ответ 3

Более низкоуровневый подход заключался бы в создании устройства uinput, из которого вы затем вводили входные события в подсистему ввода linux. Рассмотрим следующие библиотеки:

Пример отправки <enter> с последним:

from evdev import uinput, ecodes as e

with uinput.UInput() as ui:
     ui.write(e.EV_KEY, e.KEY_ENTER, 1)
     ui.write(e.EV_KEY, e.KEY_ENTER, 0)
     ui.syn()

Ответ 5

Я рекомендую PyAutoGui. Он смехотворно прост в использовании, он кросс-платформенный, и он для Python 3 и 2.

На связанной странице перечислены зависимости и некоторые примеры кода.