標題不是很具有描述性;我不確定如何描述我的問題。在我的 Python 代碼中,我有一個偵聽器,用于檢測鍵輸入并回傳輸出。為了簡單起見,假設輸出是列印和嗶聲。我不希望它同時檢測到太多按鍵并發出太多嗶聲。因此,對于每個輸入,我想在繼續之前檢查是否有最近的輸入。如果在最后一秒已經有輸入,它將跳過輸出。這是我當前的代碼:
from pynput.keyboard import Key, Listener
from playsound import playsound
def onInput(key):
#HERE I NEED TO CHECK IF THERE WAS A RECENT INPUT, AND EXIT THE FUNCTION IF THERE WAS.
print(str(key) "' was pressed.")
playsound("beep.mp3")
with Listener(on_press = onInput) as listener:
listener.join()
我不是 Python 專家。我曾嘗試使用以下代碼,但它不起作用:
from pynput.keyboard import Key, Listener
from playsound import playsound
import time
lastInput = 0
def onInput(key):
if time.time() - lastInput > 1:
lastInput = time.time()
return None
lastInput = time.time()
print(str(key) "' was pressed.")
playsound("beep.mp3")
with Listener(on_press = onInput) as listener:
listener.join()
我很確定我需要以global某種方式在這里使用,但我不確定如何使用。當我嘗試它時,我不斷收到錯誤。
uj5u.com熱心網友回復:
我總是避免使用global關鍵字,所以我要做的是使用可變資料型別并更新內容。
from pynput.keyboard import Key, Listener
from playsound import playsound
import time
times = {
'last_input': 0
}
def onInput(key):
if time.time() - times['last_input'] > 1:
times["last_input"] = time.time()
return None
times['last_input'] = time.time()
print(str(key) "' was pressed.")
playsound("beep.mp3")
with Listener(on_press = onInput) as listener:
listener.join()
如果您喜歡它的方式,那么您只需要global在更新變數的值之前添加。例如:
global last_input = time.time()
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/478451.html
上一篇:熊貓資料框連接填充僅選擇NaN
