如何在KeyboardInterrupt之前执行功能然后捕获它?

时间:2019-05-25 09:09:15

标签: python signals sigint sigterm

我正在使用git-python从我的脚本中使用git存储库,我有一个名为git_handler()的函数,该函数接受存储库的路径,然后进行适当的更改。我还希望在按下Ctrl-C期间(或之后)执行此功能。

我直接用signal.SIGINT处理信号,但据我所知,如果我们编写类似这样的内容:

import signal

...

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

它不起作用,因为处理函数不应接受任何任意参数。

如何Ctrl-C按自定义功能进行处理? (如果可能的话)。

1 个答案:

答案 0 :(得分:0)

这应该是一个开始:

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