[英]Trigger action when manually stopping Python script
我搜索了很長時間,但找不到簡單的解決方案。 我有一個 python 腳本,它會無限期運行並在滿足條件(收集到足夠的數據)時保存一些文件。 有沒有辦法終止腳本的執行並觸發 function 來保存收集的(但尚未保存的)數據? 每次我必須做某事(比如關閉計算機)時,我必須手動停止(終止)腳本(在 Pycharm 中)並且我丟失了一部分尚未保存的數據。
編輯:感謝@Alexander,我能夠解決這個問題。 一個簡單的代碼可能會更好地概述解決方案:
import atexit
import time
@atexit.register
def on_close():
print('success') #save my data
while True:
print('a')
time.sleep(2)
現在,當單擊“停止”按鈕時,將執行“on_close”function,我可以保存我的數據...
使用atexit
模塊。 它是python 標准庫的一部分。
import atexit
@atexit.register
def on_close():
... do comething
atexit.register(func, *args, **kwargs)
將 func 注冊為 function 以在終止時執行。 任何要傳遞給 func 的可選 arguments 必須作為 arguments 傳遞給 register()。 可以多次注冊相同的 function 和 arguments。
這個 function 返回 func,這使得它可以用作裝飾器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.