14

特定のモデルの実行を自動化するスクリプトを書いています。モデルが失敗すると、ユーザー入力(Enterキー)を待ちます。モデルが失敗したことは検出できますが、Python(Linuxの場合)を使用してキー押下イベントをシミュレートすることはできません。Windowsにはこれを行うためのSendKeysライブラリがありますが、Linux上にPython用の同様のライブラリがあるかどうか疑問に思いました。

ありがとう!

4

6 に答える 6

15

この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)
于 2013-10-18T19:27:00.177 に答える
8

より低レベルのアプローチは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()
于 2012-08-09T13:47:03.820 に答える
7

「モデル」が(Xウィンドウシステムを使用して)グラフィカルに実行されている場合は、すでに提案されているxsendkey 、またはxsendkeycodeが可能です。テキストで(ターミナルウィンドウで)実行されている場合は、pexpect

于 2010-04-04T22:31:39.357 に答える
2

PyAutoGuiをお勧めします。使い方はとてつもなく簡単で、クロスプラットフォームで、Python3および2用です。

リンク先のページには、依存関係といくつかのコード例がリストされています。

于 2015-10-06T07:42:06.030 に答える
1

http://people.csail.mit.edu/adonovan/hacks/xsendkey.html

于 2010-04-04T19:07:01.630 に答える
0

私がこれと別のよくランク付けされたSO応答で見つけたソリューションの多くは、非推奨(PyUserInput)またはevdevを使用していましたが、失敗しました(UInputError: "/dev/uinput" cannot be opened for writing)Linuxを使用する私にとって最も簡単なソリューションはpynputでした。彼らのドキュメントから直接1つの例:

from pynput.keyboard import Key, Controller

keyboard = Controller()

# Press and release space
keyboard.press(Key.space)
keyboard.release(Key.space)

# Type a lower case A; this will work even if no key on the
# physical keyboard is labelled 'A'
keyboard.press('a')
keyboard.release('a')

# Type two upper case As
keyboard.press('A')
keyboard.release('A')
with keyboard.pressed(Key.shift):
    keyboard.press('a')
    keyboard.release('a')

# Type 'Hello World' using the shortcut type method
keyboard.type('Hello World')

それは魅力のように機能しました!

于 2020-10-06T21:49:03.020 に答える