首頁 > 後端開發 > Python教學 > 如何在 Python 中為子進程呼叫新增逾時?

如何在 Python 中為子進程呼叫新增逾時?

DDD
發布: 2024-12-14 02:33:09
原創
176 人瀏覽過

How Can I Add a Timeout to Subprocess Calls in Python?

利用具有超時功能的子進程模組

在程式設計中經常會出現子進程需要在預先定義的時間範圍內完成其執行的情況。雖然 subprocess 模組提供了強大的執行命令機制,但它本質上缺乏逾時功能。

為了解決此限制,Python 3.3 及以後在 subprocess 模組中提供了 check_output 函數。此函數不僅從命令中取得 stdout 數據,還會在進程超過指定逾時時引發異常。

from subprocess import STDOUT, check_output

# Set the timeout in seconds
timeout = 5

try:
    # Execute the command with the specified timeout
    output = check_output(cmd, stderr=STDOUT, timeout=timeout)
except CalledProcessError as e:
    # Handle the error if the process fails with a non-zero exit status
    pass

# Process the merged stdout/stderr data contained in the output variable
登入後複製

在此程式碼中,超時變數決定指令允許的最大執行時間。 check_output 確保進程在指定的時間範圍內終止並傳回組合的 stdout/stderr 輸出。

或者,對於 Python 2.x 用戶,子進程模組的 subprocess32 向後移植提供相同的功能。此向後移植提供了與 check_output 等效的解決方案,允許在 Python 2.x 下執行逾時感知命令。

以上是如何在 Python 中為子進程呼叫新增逾時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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