Как остановить программу при нажатии клавиши в 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()
Другие вопросы по тегам