You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用webbrowser模块实现程序结束后保持HTML页面标签页打开

解决Python程序结束后本地HTML页面自动关闭的问题

问题出在webbrowser模块启动的浏览器进程可能和Python进程绑定,当Python程序终止时,浏览器进程会被一并关闭。以下是几个可行的解决办法:

方法1:使用绝对路径+file://协议打开HTML

将相对路径转换为浏览器能识别的绝对路径,避免进程关联问题:

import os
import webbrowser

print("You have reached the end: Redirecting.")
# 获取脚本所在目录的绝对路径
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接HTML文件的绝对路径
html_abs_path = os.path.join(script_dir, 'test.html')
# 转换为浏览器支持的file://格式
url = f'file://{html_abs_path}'

webbrowser.open_new(url)
# 无需time.sleep,程序结束后浏览器会保持打开

方法2:用subprocess启动独立浏览器进程

直接调用系统浏览器的可执行文件,启动完全独立的进程,脱离Python的控制:

import os
import subprocess

print("You have reached the end: Redirecting.")
script_dir = os.path.dirname(os.path.abspath(__file__))
html_path = os.path.join(script_dir, 'test.html')

# 根据你的系统选择对应命令
# Windows 启动Chrome
subprocess.Popen(['start', 'chrome', html_path], shell=True)
# macOS 启动Safari
# subprocess.Popen(['open', '-a', 'Safari', html_path])
# Linux 启动Firefox
# subprocess.Popen(['firefox', html_path])

这种方式是最可靠的,因为浏览器进程和Python进程完全独立,Python结束后不会影响浏览器运行。

方法3:临时延迟方案——等待用户输入再结束

如果只是需要临时让程序保持运行,直到用户手动确认,可替换time.sleep(10)为:

input("Press Enter to exit...")

程序会等待用户按下回车键才终止,期间HTML页面会保持打开。

内容的提问来源于stack exchange,提问作者hummusman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 14:34:58