• Как остановить скрипт python используя сочетание клавиш из любого окна?

    botermain
    @botermain
    Многопоточность - залог успеха, советую почитать эту статью, уверен, что ни раз пригодится

    Тем не менее, решение твоей проблемы довольно простое, с помощью модуля multiprocessing в отдельном процессе запускаешь функцию, которая будет слушать нажатия клавиш и завершать процесс по его PID:

    import os
    import signal
    import keyboard
    import multiprocessing
    
    
    def hook(pid):
        while True:
            if keyboard.is_pressed('ctrl + 1'):
                os.kill(pid,signal.SIGTERM)
                os._exit(1)
    
    
    if __name__ == '__main__':
        pid = os.getpid()
        multiprocessing.Process(target=hook,args=[pid]).start()
        #-----------------------------------------------------#
        #Здесь располагай свой код
        # -----------------------------------------------------#

    Конечно, можно также использовать модуль threading, но я более чем уверен , что будут проблемы с GIL, поэтому multiprocessing - это лучший вариант
    Ответ написан
    2 комментария