特定のモデルの実行を自動化するスクリプトを書いています。モデルが失敗すると、ユーザー入力(Enterキー)を待ちます。モデルが失敗したことは検出できますが、python(Linuxの場合)を使用してキー押下イベントをシミュレートすることはできません。Windowsにはこれを行うためのSendKeysライブラリがありますが、疑問に思っていました。 Linuxにはpython)用の同様のライブラリがあります。
ありがとう!
「モデル」が(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用です。
リンク先のページには、依存関係といくつかのコード例がリストされています。