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

Python报错No such file or directory found无法读取同目录文件解决方法

解决方案

你遇到的两个问题本质原因分别是:

  1. 相对路径查找文件失败:Python执行open('文件名')时,是从当前运行环境的工作目录查找文件,而非脚本文件自身所在的目录——如果你运行脚本时终端停在其他路径、或者IDE打开的工作区是项目上层文件夹,哪怕文件和脚本同目录也会报找不到文件。
  2. 绝对路径下的Unicode编码错误:不同操作系统默认文件编码不一致,中文环境Windows默认用GBK编码读取文件,而绝大多数JSON文件是UTF-8编码,编码不匹配就会触发报错。

不要硬编码本地绝对路径,用以下写法可以同时解决两个问题,项目拷贝到任意设备都能正常运行:

import json
import os

# 获取当前脚本自身所在的文件夹路径,和运行时工作目录无关
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接同目录下JSON文件的路径,自动适配不同系统的路径分隔符
json_file_path = os.path.join(script_dir, 'intentii.json')

# 显式指定UTF-8编码读取文件,规避跨系统编码问题
with open(json_file_path, 'r', encoding='utf-8') as f:
    intentii = json.load(f)

写法说明

  • 基于__file__内置变量定位脚本所在目录,不依赖运行时的工作路径,你提到的「所有读取当前文件夹内文件都报错」的共性问题,都可以用这个拼路径的方式解决
  • 用os.path.join拼接路径,自动适配Windows的\和macOS/Linux的/路径分隔符,不用手动处理跨系统路径格式问题
  • 显式指定encoding='utf-8',彻底解决不同系统默认编码不一致导致的Unicode报错
  • 用with上下文管理器读取文件,会自动关闭文件句柄,比手动写open().read()更稳妥

排查提示:如果改完代码还是提示找不到文件,打开系统的「显示文件扩展名」选项,确认你的JSON文件没有被隐藏后缀,实际文件名不是intentii.json.txt这类错误名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:06:24