使用Python for Linux模拟Key Press事件

我正在写一个脚本来自动运行一个特定的模型。 当模型失败时,它等待用户input(回车键)。 我可以检测模型何时失败,但我不能使用python(在Linux上)来模拟按键事件。 Windows有SendKeys库来做到这一点,但我想知道是否有一个类似的库在Linux上的Python。

谢谢!

如果“模型”以graphics方式运行(使用X窗口系统),则已经build议的xsendkey是可能性或xsendkeycode 。 如果它正在运行(在terminal窗口),然后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) 

更低级别的方法是创build一个uinput设备,然后将input事件注入到linuxinput子系统中。 考虑以下库:

  • python,uinput
  • 了evdev

用后者发送<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和Python 2。

在链接页面中列出了依赖和一些代码示例。