Как сделать горячую клавишу внутри функции для выключения скрипта

Мне посоветовали скрипт для паузы и выключения скрипта, вот такой:

import keyboard
import datetime
import time

def zadacha1():
    #print hello with date and time now
    time.sleep(1)
    print("отметка времени: ", datetime.datetime.now())

paused = False
exit_loop = False

def pause_loop():
    global paused
    paused = not paused
    if paused:
        print("\npaused = True\n")
    else:
        print("\npaused = False\n")

def exit_program():
    global exit_loop
    exit_loop = True
    print("\nexit_loop = True\n")        

# Устанавливаем сочетание клавиш для паузы
keyboard.add_hotkey('f5', pause_loop)
keyboard.add_hotkey('f6', exit_program)

while True:
    if not paused:
        # Ваш код для выполнения задачи
        zadacha1()
        if exit_loop:
            print('\nПрограмма завершена\n')
            break

Но проблема в том, что он не работает, если есть несколько функций.
То есть, вот так работает:

while True:
    if not paused:
        # Ваш код для выполнения задачи
        zadacha1()
        if exit_loop:
            print('\nПрограмма завершена\n')
            break

А вот так - нет:

while True:
    if not paused:
        # Ваш код для выполнения задачи
        zadacha1()
        zadacha2()
        zadacha3()
        zadacha4()
        if exit_loop:
            print('\nПрограмма завершена\n')
            break  

Проблема в том, что это объемные функции, и в них еще куча функций... а вот как сделать, чтобы стоп сработал в любой из функций, то есть, пока функция zadacha1() выполняется, горячая клавиша не реагирует... грубо говоря, zadacha1() может выполняться 4-6 минут... и вот мне надо, чтобы в любое время сработал стоп.


Ответы (0 шт):