Как остановить программу при нажатии клавиши в Python?
У меня есть программа, которая представляет собой бесконечный цикл, который печатает "программу работает" каждые 5 секунд, и я хочу остановить ее, когда нажимаю клавишу завершения.
Поэтому я создал ключевой слушатель, который возвращает false, если нажата клавиша завершения. Это должно работать, если у меня не будет бесконечного цикла. И я хочу, чтобы это работало, даже когда я нахожусь в бесконечном цикле.
Вот мой код:
from pynput import keyboard
import time
def on_press(key):
print key
if key == keyboard.Key.end:
print 'end pressed'
return False
with keyboard.Listener(on_press=on_press) as listener:
while True:
print 'program running'
time.sleep(5)
listener.join()
1 ответ
Решение
from pynput import keyboard
import time
break_program = False
def on_press(key):
global break_program
print (key)
if key == keyboard.Key.end:
print ('end pressed')
break_program = True
return False
with keyboard.Listener(on_press=on_press) as listener:
while break_program == False:
print ('program running')
time.sleep(5)
listener.join()