• Как прекращать работу скрипта, после нажатия кнопки?

    @Proliter
    Один из способов решения задачи - использование многопоточности. Созданный поток будет обрабатывать нажатия клавиш и сигнализировать об этом основной.

    import keyboard
    import threading
    from time import sleep
    
    
    def invert_event(key_event):
        if start_event.is_set():
            start_event.clear()
        else:
            start_event.set()
    
    def listen_F3():
        # при опущении зажатой кнопки f3 
        # меняем флаг события на противоположный
        keyboard.on_release_key(key='F3', callback=invert_event)
    
    
    # объект собития, с его помощью 
    # сигнализируем основной поток
    # о нажатии клавиши
    start_event = threading.Event()
    # запускаем поток обработки нажатий
    threading.Thread(target=listen_F3).run()
    # ждем клавишу
    start_event.wait()
    
    while start_event.is_set():
        print('processing...')
        sleep(1)
    
    print('script finished.')


    Если заменить условие цикла на start_event.wait(), можно будет бесконечно останавливать и возобновлять цикл.
    while start_event.wait():
        print('processing...')
    Ответ написан
    1 комментарий