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

Python跨目录访问文件报错:[Errno 2] 文件或目录不存在

问题解决:文件找不到错误(Errno 2)

错误根源

你调用open()时只传入了文件名,Python默认会在当前脚本运行的目录里查找文件,但你的目标文件实际存在path变量指定的文件夹中,路径不匹配导致找不到文件。另外你原代码里的for model in l:循环完全没用到model变量,属于冗余代码,直接删掉就行。

修正方案

方案1:按坐标范围逐个打开指定文件

用os.path.join()把目标文件夹路径和文件名拼接成完整路径,这是跨平台的安全写法:

import os
path = r"C:\Users\M S I\Desktop\TA MACHINE LERANING\MODEL SKENARIO UJI 1"

# 遍历坐标范围,拼接完整路径后打开文件
for Coor_X in range(1, 18):
    for Coor_y in range(1, 25):
        # 拼接完整文件路径
        file_path = os.path.join(path, f'model joblib [{Coor_X} {Coor_y}]')
        try:
            with open(file_path, 'rb') as f:
                print(f"成功打开文件: {file_path}")
                # 这里可以添加读取文件的逻辑,比如 model = joblib.load(f)
        except FileNotFoundError:
            print(f"警告:文件不存在: {file_path}")

方案2:直接遍历目标文件夹内所有匹配文件(更高效)

如果不需要严格按坐标范围遍历,而是想处理文件夹里所有符合命名格式的文件,用glob模块更简洁:

import os
import glob

path = r"C:\Users\M S I\Desktop\TA MACHINE LERANING\MODEL SKENARIO UJI 1"
# 匹配所有"model joblib [X Y]"格式的文件
file_pattern = os.path.join(path, 'model joblib [* *]')
for file_path in glob.glob(file_pattern):
    with open(file_path, 'rb') as f:
        print(f"成功打开文件: {file_path}")
        # 这里添加文件处理逻辑

注意事项

  • 确保代码生成的文件名和实际文件名完全一致,包括空格、括号等符号,避免因拼写错误导致找不到文件
  • 加入try-except捕获FileNotFoundError可以避免程序直接崩溃,方便排查缺失的文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:55:27