簡體   English   中英

手動停止Python腳本時觸發動作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM