首頁 > 後端開發 > Python教學 > 如何在 Python 腳本中優雅地處理 Ctrl C 中斷?

如何在 Python 腳本中優雅地處理 Ctrl C 中斷?

DDD
發布: 2024-12-17 14:58:10
原創
903 人瀏覽過

How Can I Gracefully Handle Ctrl C Interrupts in My Python Scripts?

在Python 中處理SIGINT:詳細指南

使用包含多個進程和資料庫連接的Python 腳本時,能夠優雅地處理用戶中斷,例如使用者按下Ctrl C 時產生的SIGINT 訊號。本文提供了捕獲和回應的綜合指南Python 中的 SIGINT,讓您在退出腳本之前執行必要的清理。

實作 SIGINT 處理程序

要註冊 SIGINT 訊號的處理程序,您可以使用Python 中的 signal.signal 函數。以下是一個範例程式碼片段:

import signal
import sys

def signal_handler(sig, frame):
    print('You pressed Ctrl+C!')
    sys.exit(0)

signal.signal(signal.SIGINT, signal_handler)
登入後複製

在此程式碼中,我們:

  1. 匯入必要的模組:signal 和 sys。
  2. 定義一個訊號處理函數(signal_handler) 列印一則訊息並優雅地終止腳本。
  3. 註冊訊號處理程序使用 signal.signal 取得 SIGINT 訊號。

捕捉 SIGINT 訊號

註冊訊號處理程序後,可以透過呼叫 signal 來擷取 SIGINT 訊號。暫停()。此函數將阻止腳本,直到收到訊號,在本例中為 Ctrl C 輸入。

print('Press Ctrl+C')
signal.pause()
登入後複製

附加說明

  • 提供的程式碼是列印訊息並退出腳本的基本範例。您可以修改訊號處理函數以在退出之前執行任何必要的清理或終結。
  • 有關 Python 中訊號模組和訊號處理的更多詳細文件可以在 Python 標準庫文件中找到。

以上是如何在 Python 腳本中優雅地處理 Ctrl C 中斷?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板