[英]Python input with pynput listener
我正在尋找一種具有一些手動可選輸入的方法。
感謝MaLiN2223建議主要聽眾。
我想做的是捕獲鍵盤輸入以觸發另一個操作。
在下面嘗試使用Pynpu時,我添加了打印件,以便我們可以看到每個按鍵的解釋方式。 我不知道如何讓監聽器捕獲“常規”鍵盤輸入,例如數字或字母。 從輸出中我們可以看到偵聽器正在工作,但是只有在按下“特殊”鍵(例如Shift,control等)時才能識別出。
我希望能夠輸入“ 1”之類的內容,然后按Enter鍵,我希望輸出按照以下代碼包含“ place 1”。
值得注意的是,我在Mac上運行。
from pynput import keyboard
def on_press(key):
try:
print('place 1')
except AttributeError:
print('place 2')
print('special key {0} pressed'.format(
key))
def on_release(key):
print('place 3')
print('{0} released'.format(
key))
if key == keyboard.Key.esc:
print('place 4')
# Stop listener
return False
# Collect events until released
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
輸出是這個 如您所見,當我鍵入數字並按Enter鍵時,什么也不會發生。 如果按特殊鍵,程序將做出適當反應。
1
2
3
4
place 1
place 3
Key.shift released
place 1
place 3
Key.ctrl released
place 1
^Z
根據您的評論,我將使用某種鍵偵聽器。 您可以安裝pynput軟件包並使用這些功能查看用戶輸入的內容。 主要思想是這樣的:
from pynput import keyboard
input = ""
expected = "expected"
def on_press(key):
try:
input +=key.char
if input == expected:
do_something()
input = ""
except AttributeError:
#handle special key
with keyboard.Listener(on_press=on_press) as listener:
listener.join()
在用戶鍵入“ expected”之后,以上代碼將調用do_something
函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.