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

如何关闭os.system启动的应用且不中断后续Python脚本执行?

解决方法

核心问题

os.system()会阻塞当前脚本,直到调用的子进程完全结束,这就是控制台冻结的原因。要实现「启动应用打开网页后自动终止,且不中断后续脚本」,可以用subprocess模块替代os.system,灵活控制子进程的生命周期。

具体实现

使用subprocess.Popen启动snakeviz(非阻塞模式),等待几秒让浏览器完成网页加载后,主动终止该进程:

import subprocess
import time

# 替换为你的实际文件名
filename = "your_profile_data.prof"

# 启动snakeviz进程,当前脚本不会被阻塞
proc = subprocess.Popen(["python", "-m", "snakeviz", filename])

# 等待3秒,确保浏览器打开并加载网页(可根据实际情况调整时长)
time.sleep(3)

# 终止snakeviz进程
proc.terminate()
# 如果terminate无法终止,改用kill强制结束
# proc.kill()

# 后续脚本代码可以正常执行
print("snakeviz已自动关闭,后续脚本继续运行...")

补充说明

  • subprocess.Popen是os.system的替代方案,提供了更细粒度的进程控制能力,不会阻塞主脚本的执行。
  • 等待时长可根据你的系统响应速度调整,确保浏览器能成功打开目标网页即可。
  • 如果是Windows系统,也可以通过start命令让snakeviz在独立窗口运行,但这种方式无法直接在脚本中主动终止进程,不如subprocess方案可控。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:31:17