Как выполнить функцию до KeyboardInterrupt, а затем поймать ее? - PullRequest
0 голосов
/ 25 мая 2019

Я работаю с репозиторием git из моего скрипта, используя git-python, у меня есть функция с именем git_handler(), которая принимает путь к репо и затем вносит соответствующие изменения.Я также хочу, чтобы эта функция выполнялась во время (или сразу после) нажатия Ctrl-C.

Я перешел прямо к сигналам с signal.SIGINT, но, насколько я понял, если мы напишем что-то вроде:

import signal

...

signal.signal(signal.SIGINT, git_handler(repo_path))

это не будет работать, так как функция-обработчик не должна принимать произвольный аргумент.

Как следует Ctrl-C нажать с обработкой пользовательской функции?(если возможно вообще).

1 Ответ

0 голосов
/ 25 мая 2019

Это должно быть начало:

try:
    # ...
except KeyboardInterrupt:
    git_handler(repo_path)
    raise
...