如何在Python中退出程序时打开另一个程序?

时间:2013-07-27 17:27:26

标签: python windows

我有一个程序需要在退出后进行一些清理,并为此编写了一个单独的.py文件。但是,我使用的程序在一个部分保持无限循环:

pythoncom.PumpMessages()

因此,程序没有“自然”关闭。唯一的方法是从任务管理器结束流程。

所以我问:有没有办法在从任务管理器结束后自动运行我的清理python脚本?

编辑:我可以用不同的方式将其置于无限循环中,例如,如果它有帮助:

while True:
    pythoncom.PumpWaitingMessages()

1 个答案:

答案 0 :(得分:1)

在unix中,当你杀死一个进程时,你会发送一个信号。例如,CTRL-C会将信号发送到程序。

在Windows上,模拟了其中一些信号,包括CTRL-C。如果您的循环没有调用阻止CTRL-C信号的函数,那么您可以按CTRL-C来终止循环。您是否可以尝试使用CTRL-C终止程序,而不是通过任务管理器来完成它?

如果它以这种方式工作,你可以编写一个处理程序来捕获CTRL-C信号,清除程序状态和sys.exit()

以下是捕获信号的代码: How do I capture SIGINT in Python?