Python黑窗口被关闭时执行代码
时间: 2024-09-07 09:05:21 浏览: 37
selenium+python 去除启动的黑色cmd窗口方法
Python中,如果你想要在程序运行在命令行(也称为黑窗口或终端)的情况下,在该窗口关闭时执行特定代码,可以通过捕获系统的关闭信号来实现。在Unix和Windows系统中,可以通过设置信号处理函数来捕获相应的事件。
在Python中,你可以使用`signal`模块来处理信号。对于Unix系统,常见的关闭信号是`SIGINT`(信号2),可以通过`signal.SIGINT`来捕获。对于Windows系统,可以通过`signal.SIGBREAK`来捕获。以下是一个简单的示例代码,展示了如何在黑窗口接收到关闭信号时执行代码:
```python
import sys
import signal
def signal_handler(signal, frame):
print('程序即将退出...')
# 在这里编写你想要执行的代码,比如清理资源
sys.exit(0)
# 为SIGINT信号设置信号处理函数
signal.signal(signal.SIGINT, signal_handler)
print('程序正在运行...')
# 进入一个无限循环,等待信号
while True:
pass
```
在Windows系统中,上述代码同样适用,但要注意信号名称是`SIGBREAK`:
```python
# 其他代码不变,仅更改信号处理函数设置部分
signal.signal(signal.SIGBREAK, signal_handler)
```
需要注意的是,当命令行窗口被关闭时,程序可能并不会立即退出,因为操作系统允许程序有机会清理资源。如果你不使用信号处理函数,程序将会在关闭命令行窗口时异常退出。
此外,如果你想要在程序非正常退出时执行代码,比如程序崩溃,可以考虑捕获如`SIGABRT`、`SIGFPE`等信号。
阅读全文