从PyCharm控制台停止Python脚本时,等待并完成进程?

时间:2016-07-20 11:54:24

标签: python pycharm exit

基本上我正在编写一个可以随时停止和恢复的脚本。因此,如果用户使用PyCharm console来执行程序,他只需要随时点击停止按钮即可。

现在,我需要保存一些变量,并在终止之前让正在进行的功能完成。我可以使用哪些功能?

我已经尝试atexit.register()无济于事。 另外,如何在程序退出之前确保正在进行的功能已完成?

提前致谢

2 个答案:

答案 0 :(得分:1)

使用非常糟糕的解决方法解决了这个问题。我使用了与Python中的exit相关的所有函数,包括SIG *函数,但唯一的是,当按下PyCharm应用程序中的“停止”按钮停止Python程序时,我找不到捕获退出信号的方法。最后通过使用tkinter打开一个空窗口,我的程序在后台线程中运行,然后使用它来关闭/停止程序执行。工作非常好,捕获SIG *信号以及执行atexit。无论如何,感谢@scrineym链接确实提供了很多有用的信息,这些信息确实帮助我开发了最终版本。

答案 1 :(得分:0)

看起来你可能想要发出信号。

当程序被告知停止从OS向进程发送信号时,您可以在退出之前捕获它们并进行清理。有许多不同的信号,例如当您按CTRL + C时,操作系统发送SIGINT信号以停止您的进程,但还有许多其他信号。

见这里:How do I capture SIGINT in Python?

这里是信号库:https://docs.python.org/2/library/signal.html