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

使用subprocess.call调用Notepad++后Python后续代码阻塞不执行如何解决

问题原因

subprocess.call() 本身的设计就是同步阻塞等待被调用的子进程运行结束后才会返回,因此你启动Notepad++后,只要不手动关闭程序,Python主线程就会一直卡在该步骤等待返回值,这是函数的正常特性,并非运行报错。

解决方案

将subprocess.call()替换为异步启动子进程的subprocess.Popen()即可,该方法启动子进程完成后会立刻返回,不会等待子进程关闭,Python可直接执行后续代码。

代码示例

import subprocess
subprocess.Popen([r"C:\Program Files\Notepad++\notepad++.exe", r"C:\location\myfile.txt"])
补充可选方案

如果你本地.txt格式文件的默认打开程序已经设置为Notepad++,可以直接使用Windows系统原生的文件启动方法,不需要硬编码Notepad++的安装路径:

import os
os.startfile(r"C:\location\myfile.txt")
额外说明

如果后续需要管理启动的Notepad++进程,可以将Popen的返回值保存为变量,实现状态查询、主动关闭等操作:

  • 查看进程是否仍在运行:process.poll(),返回None代表运行中,返回数值代表已退出
  • 主动关闭进程:process.terminate()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:54:00