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

重装Windows后Python无法打开同目录下的文本文件,是什么原因该如何解决?

问题原因
  • 核心原因是当前工作目录(Current Working Directory, CWD)和脚本所在目录不匹配,该问题与Python环境变量配置无关,无需排查环境变量设置。
  • Python内置的open()函数传入相对路径时,会基于当前运行脚本时的工作目录查找文件,而非脚本本身的存储目录。重装系统后你的终端/IDE的Python运行配置被重置,导致运行脚本时的工作目录不是C:\untitled,所以找不到同目录下的txt文件。
  • 可通过以下代码验证该问题:
import os
print("当前工作目录:", os.getcwd())
print("脚本所在目录:", os.path.dirname(os.path.abspath(__file__)))

运行后若两个输出结果不一致,即可确认问题根源。

解决方法

无需修改旧脚本的配置方案

  • IDE运行场景:
    • PyCharm:点击右上角运行配置旁的下拉箭头→「编辑配置」→找到对应脚本的运行配置,将「工作目录」参数修改为C:\untitled;如需全局生效,可修改Python运行模板的默认工作目录配置。
    • VS Code:打开设置界面,搜索python.terminal.executeInFileDir,勾选该选项,后续运行Python脚本时会自动切换到脚本所在目录作为工作目录。
  • 终端运行场景:运行脚本前先切换到脚本所在目录,再执行运行命令。示例:
    先执行cd C:\untitled,再执行python helloworld.py,不要在其他目录下通过绝对路径指定脚本运行。

一劳永逸的代码兼容方案

后续新写代码建议使用该逻辑,避免更换运行环境后重复出现同类问题:
将文件路径拼接为基于脚本目录的绝对路径,示例代码如下:

import os
# 获取当前脚本所在的绝对目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接目标文件的完整路径
file_path = os.path.join(script_dir, 'mytext.txt')
f = open(file_path)

该写法不受运行时工作目录影响,无论在任何目录下启动脚本都可以正常找到同目录下的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:36:02