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

Python脚本仅在VS Code正常运行,文件夹执行因with open读取txt崩溃怎么办

Python脚本双击运行读取txt文件崩溃问题解决方案

问题根因

该问题核心是运行环境的工作目录与预期不一致导致的:

  • 在VS Code中运行时,默认工作目录为你打开的项目根目录,input.txt刚好在该目录下,因此可以正常读取
  • 直接双击脚本运行时,系统分配的工作目录通常不是脚本所在文件夹,程序找不到input.txt就会抛出未捕获的文件不存在异常,触发直接闪退

修复方案

最优方案:动态拼接文件绝对路径

通过获取脚本自身的绝对路径拼接input.txt路径,无论从什么位置启动脚本都能正确找到文件,同时显式指定编码避免跨系统乱码问题:

import os

# 获取当前脚本所在文件夹的绝对路径
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接得到input.txt的完整绝对路径
input_file_path = os.path.join(script_dir, "input.txt")

with open(input_file_path, "r", encoding="utf-8") as test:
    links = [x.rstrip() for x in test]

增强方案:增加异常捕获避免闪退

如果需要让程序报错时不会直接消失,可添加异常捕获逻辑:

import os

script_dir = os.path.dirname(os.path.abspath(__file__))
input_file_path = os.path.join(script_dir, "input.txt")

try:
    with open(input_file_path, "r", encoding="utf-8") as test:
        links = [x.rstrip() for x in test]
except FileNotFoundError:
    print(f"错误:未在脚本所在目录找到input.txt文件,请检查文件是否存在")
    input("按任意键退出程序")
    exit(1)

快速验证方法

如果需要确认是不是路径问题,可在原有代码开头添加如下代码,双击运行后打印的路径就是当前程序的工作目录,对比是否和input.txt所在目录一致即可:

import os
print(os.getcwd())
input()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:45:06