Ответ 1
Если "модель" работает графически (с системой окон X), предложенная xsendkey - это возможность или xsendkeycode. Если он работает текстовым способом (в окне терминала), pexpect.
Я пишу script для автоматизации работы конкретной модели. Когда модель выходит из строя, она ждет ввода пользователем (клавиша Enter). Я могу обнаружить, когда модель потерпела неудачу, но я не могу использовать python (в linux) для имитации события нажатия клавиши. Windows имеет библиотеку SendKeys, но мне было интересно, есть ли подобная библиотека для python в linux.
Спасибо!
Если "модель" работает графически (с системой окон X), предложенная xsendkey - это возможность или xsendkeycode. Если он работает текстовым способом (в окне терминала), pexpect.
Посмотрите на 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)
Более низкоуровневый подход заключался бы в создании устройства 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()
Я рекомендую PyAutoGui. Он смехотворно прост в использовании, он кросс-платформенный, и он для Python 3 и 2.
На связанной странице перечислены зависимости и некоторые примеры кода.