使用Python for Linux模拟按键事件

use*_*827 14 python linux key keypress simulate

我正在编写一个脚本来自动运行特定模型.当模型失败时,它等待用户输入(Enter键).我可以检测到模型何时失败,但我无法使用python(在linux上)来模拟按键事件.Windows有SendKeys库来做这个,但我想知道在Linux上是否有类似的python库.

谢谢!

nar*_*ren 14

看看这个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)
Run Code Online (Sandbox Code Playgroud)


Ale*_*lli 7

如果"模型"以图形方式运行(使用X窗口系统),则已建议的xsendkey是可能的,或xsendkeycode.如果它以文本方式运行(在终端窗口中),那么就是pexpect.

  • 到`xsendkey`和`xsendkeycode`的链接已经死了. (8认同)

gva*_*kov 6

更底层的方法是创建一个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()
Run Code Online (Sandbox Code Playgroud)