网站首页 > 技术文章 正文
有时候,我们需要重新启动正在运行的 Python 脚本程序。这不是简单的关闭程序再运行,需要从程序内部重新运行该程序。
使用 os.execv() 方法重新启动 Python 脚本。os.execv(path, args) 函数通过替换进程来执行新程序。
import os
import sys
def 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 time
print("运行中......")
time.sleep(6)
raise Exception("程序出错.....")
在同一目录中建立用于重启的脚本:
from subprocess import Popen
import sys
filename = "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 <module>
raise Exception("程序出错.....")
Exception: 程序出错.....
启动 test.py
运行中......
Traceback (most recent call last):
File "test.py", line 4, in <module>
raise Exception("程序出错.....")
Exception: 程序出错.....
以上示例使用了 subprocess 模块,将 python 脚本作为新的子进程打开。每当脚本文件异常失败时,while 循环都会将脚本文件作为新的子进程重新启动。
- 上一篇: 如何编写和运行Python程序
- 下一篇: 《三步学Python》
猜你喜欢
- 2024-12-23 python快速入门系列一:python简介
- 2024-12-23 python线程启动的start方法和run方法区别
- 2024-12-23 可视化运行Python的神器Jupyter Notebook
- 2024-12-23 写完python后如何运行程序
- 2024-12-23 如何开始使用 Python?
- 2024-12-23 python入门001:安装与运行
- 2024-12-23 《三步学Python》
- 2024-12-23 如何编写和运行Python程序
- 2024-12-23 Python运行程序的三种方法
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 90℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)