在 Python 中重新啟動指令碼

Muhammad Waiz Khan 2021年3月21日
在 Python 中重新啟動指令碼

在本教程中,我們將研究重新啟動或重新執行 Python 程式的方法。假設我們希望將功能新增到我們的程式中,以便在使用者選擇重新啟動選項時重新啟動;我們需要某種方法從程式內部重新執行該程式。

本教程將演示可用於從程式內部重新啟動程式並使用 Python 殺死程式的當前例項的方法。我們可以使用以下方法來做到這一點。

在 Python 中使用 os.execv() 函式重新啟動程式指令碼

os.execv(path, args) 函式通過替換程序來執行新程式。它不會重新整理緩衝區,檔案物件和描述符,因此使用者需要在呼叫 os.execv() 函式之前分別緩衝它們。os.execv() 函式不需要 path 引數就可以找到可執行程式。

因此,要使用 os.execv() 函式重新啟動程式,我們首先需要使用 sys.stdout.flush()file.flush() 方法重新整理緩衝區和檔案描述符。os.execv() 方法,如下面的示例程式碼所示。

import os
import sys

sys.stdout.flush()
os.execv(sys.argv[0], sys.argv)