在 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)