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

Python使用open()读取同目录文件报FileNotFoundError,绝对路径可正常读取

问题成因

出现该问题的核心原因是Python运行时的工作目录(Current Working Directory, CWD) 与代码、目标文件的存储目录不一致:

  • 当你使用相对路径传参给open()时,Python会基于当前运行程序的工作目录查找文件,而非基于代码文件本身的存储路径查找。
  • 工作目录默认是你执行python启动命令时所在的终端目录,部分IDE的运行配置也会自定义工作目录,这两种情况都会导致相对路径寻址失败。

解决方案

以下几种方案均可解决该问题:

  • 方案1:基于代码文件路径拼接目标文件的绝对路径(兼容性最高,不受运行环境影响)
import os

# 获取当前py脚本所在目录的绝对路径
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接得到目标文件的绝对路径
target_path = os.path.join(script_dir, "liss.txt")

# 推荐配合with上下文管理器使用,无需手动调用close()释放文件
with open(target_path, "r") as list_file:
    print(list_file.readable())
  • 方案2:运行代码前先切换工作目录到脚本所在目录
import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))

# 切换后可直接使用相对路径读写同目录下的文件
with open("liss.txt", "r") as list_file:
    print(list_file.readable())
  • 方案3:终端运行时调整启动路径
    运行代码前先在终端执行cd 你的代码文件夹路径,进入代码和文件所在目录后再执行python 你的脚本名.py即可。
  • 方案4:调整IDE运行配置
    在IDE的对应脚本运行配置项中,找到「工作目录(Working Directory)」参数,将值修改为你的代码和目标文件所在的文件夹路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:06:03