最近在學習Python編程時,遇到了一些監控窗口關閉的問題。在Linux中,終端窗口被關閉后,運行在該終端中的程序就會停止。如何監控這個事件并在程序停止前完成一些工作?Python中有一個名為 signal 的庫,可以用來監控信號事件,包括終端窗口的關閉事件。以下是用Python監控窗口關閉的示例代碼,代碼注釋中詳細說明了代碼的功能。
import signal def handle_exit(signal, frame): print("Window closing") # 捕獲SIGINT信號(Ctrl+C)。SIGINT信號是Ctrl+C的中斷信號,可以用來測試程序。 signal.signal(signal.SIGINT, handle_exit) # 捕獲SIGTERM信號。SIGTERM信號是Linux系統中的結束進程信號,當kill命令發送給進程時就會收到該信號。 signal.signal(signal.SIGTERM, handle_exit) # 捕獲SIGHUP信號。SIGHUP信號是Linux系統中的掛起進程信號,可以通過該信號在進程不退出的情況下重新加載配置文件。 signal.signal(signal.SIGHUP, handle_exit) while True: print("Program is running") # 這里可以放置需要運行的代碼 # 如果程序需要在窗口關閉前完成一些工作,可將代碼放在while循環中。
在上述代碼中,handle_exit() 函數是一個信號處理函數。當收到SIGINT、SIGTERM或SIGHUP信號時,就會調用該函數。在 Python 中,可以使用 signal.signal(signalnum, handler) 函數來設置信號處理函數。signalnum 是要捕獲的信號的編號,handler 是處理該信號的函數名。
在程序主循環中,我們可以運行一些需要在程序終止前完成的代碼。如果收到窗口關閉事件,handle_exit() 函數就會被調用,并輸出 "Window closing"。
上一篇python目標找索引
下一篇oracle 02231