簡體   English   中英

使用Pynput偵聽器的Python輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM