Я пытаюсь использовать pynput для закрытия из бесконечного l oop. Прямо сейчас, когда код запускается и после нажатия Shift и F2 он будет печатать «работает» бесконечно. Я хочу, чтобы l oop прекратил печать, как только я нажму клавишу es c. Вот мой код
from pynput.keyboard import Key, Controller
from pynput import keyboard
import time
typer = Controller()
COMBINATIONS = [
{keyboard.Key.shift, keyboard.Key.f2}
]
current = set()
def execute():
while current != keyboard.Key.esc:
print("running")
def on_press(key):
if any([key in COMBO for COMBO in COMBINATIONS]):
current.add(key)
if any(all(k in current for k in COMBO) for COMBO in COMBINATIONS):
execute()
if key == keyboard.Key.esc:
sys.exit
return False
def on_release(key):
if any([key in COMBO for COMBO in COMBINATIONS]):
current.remove(key)
with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
Часть этого кода может быть посторонней, так как я все еще изучаю pynput и собираю его из программы, которую я написал вчера. Я попытался вернуть false и использовать sys.exit в функции on_press и изменить бесконечный l oop, чтобы он работал только тогда, когда текущий ключ не является es c.