从文本读取路径用os.startfile()启动launcher.exe后程序立即关闭,如何修复?
问题解决思路
1. 修复路径读取的格式问题
你的文本文件内容包含方括号[],且readline()会读取到末尾的换行符\n,导致传递给os.startfile()的是无效路径(比如[C:\Sobee\Game\launcher.exe]\n)。先清理路径字符串:
import os with open("fihrist.txt", "r") as file: # 先去除首尾空白(含换行符),再去掉方括号 target_path = file.readline().strip().strip('[]') os.startfile(target_path)
2. 排查launcher.exe本身是否正常
直接找到C:\Sobee\Game\launcher.exe双击运行:
- 如果双击也出现打开即关闭的情况,说明是程序自身问题:
- 尝试右键以管理员身份运行
- 检查游戏目录是否缺失依赖文件(比如VC++运行库、相关dll)
- 查看程序目录下是否有日志文件,定位具体错误原因
- 如果双击能正常运行,问题则出在代码逻辑上
3. 调整工作目录(针对依赖当前目录的程序)
部分程序需要在自身所在目录下运行,os.startfile()不会自动切换工作目录,可改用subprocess模块指定工作目录:
import subprocess import os with open("fihrist.txt", "r") as file: target_path = file.readline().strip().strip('[]') # 提取程序所在的目录 working_dir = os.path.dirname(target_path) # 指定工作目录启动程序 subprocess.Popen([target_path], cwd=working_dir)
4. 其他排查点
- 确认路径中无特殊字符或空格(若有,
subprocess会自动处理路径包裹) - 检查Python脚本是否有足够权限启动目标程序
内容的提问来源于stack exchange,提问作者hax1254
相关产品推荐
相关产品推荐

