Python脚本文件如何重新启动自身进程

云课堂学Python 2024-06-25 11:29:20
有时候,我们需要重新启动正在运行的 Python 脚本程序。这不是简单的关闭程序再运行,需要从程序内部重新运行该程序。 使用 os.execv() 方法重新启动 Python 脚本。os.execv(path, args) 函数通过替换进程来执行新程序。 import osimport sysdef restart(): print('重启程序……') os.execv(sys.executable, ['python'] + sys.argv)restart()以上示例会不断重启,输出如下结果: 重启程序...重启程序...重启程序...重启程序...重启程序...重启程序......示例中使用 os.execv() 方法重新启动 Python 脚本。 sys.executable 属性返回一个字符串,该字符串存储当前脚本文件的绝对路径。 sys.argv 属性返回一个列表,其中包含传递给 Python 脚本的参数。列表中的第一项是脚本文件的名称。 换句话说,os.execv 执行的命令是“python 脚本文件名”。 如何在脚本程序异常后重新启动? 假设有一个名为 test.py 的简单脚本,想永远运行它。现在脚本文件会在 6 秒钟后停止并抛出错误。 import timeprint("运行中......")time.sleep(6)raise Exception("程序出错.....")在同一目录中建立用于重启的脚本: from subprocess import Popenimport sysfilename = "test.py"while True: print("\n启动 " + filename) p = Popen("python " + filename, shell=True) p.wait()输出结果: 启动 test.py运行中......Traceback (most recent call last): File "test.py", line 4, in raise Exception("程序出错.....")Exception: 程序出错.....启动 test.py运行中......Traceback (most recent call last): File "test.py", line 4, in raise Exception("程序出错.....")Exception: 程序出错.....以上示例使用了 subprocess 模块,将 python 脚本作为新的子进程打开。每当脚本文件异常失败时,while 循环都会将脚本文件作为新的子进程重新启动。
0 阅读:0

云课堂学Python

简介:感谢大家的关注