You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Google Colab读取图片遇FileNotFoundError问题求助

嘿,我来帮你排查这个问题!看起来你的代码里有几个容易忽略的小细节在搞鬼,咱们一步步理清楚:

首先,先揪出几个明显的问题:

  • 模块没导入全:你用到了os.path.joinnp.append,但代码里没导入osnumpy(得加import osimport numpy as np),虽然这可能不是直接导致找不到文件的原因,但会引发后续报错。
  • 变量混用了:你定义函数参数是abs_path,但函数内部却一直在用全局的path变量!这就等于你传进去的绝对路径根本没生效,白忙活了。
  • train_images没定义:循环里的for image in train_images:,但你没告诉程序train_images到底是啥——里面的文件名是不是和文件夹里的完全一致?有没有大小写错误?比如你测试的是CM148.jpg,那train_images里必须准确包含这个文件名才行。
  • np.append用法错了:这个函数不会直接修改原数组,得把返回值赋值回去才行,比如image_list = np.append(image_list, im),而且还要先初始化image_list为空数组。

给你改好的代码参考:

from PIL import Image
import os
import numpy as np

# 先自动获取文件夹里所有的jpg文件名,避免手动写错
path = '/content/Images/'
train_images = [f for f in os.listdir(path) if f.lower().endswith('.jpg')]
image_list = np.array([])

def load_images(abs_path):
    global image_list
    for image in train_images:
        # 先打印路径确认是不是正确的
        full_path = os.path.join(abs_path, image)
        print(f"尝试加载: {full_path}")
        try:
            im = Image.open(full_path)
            image_list = np.append(image_list, im)
            print(f"✅ 成功加载 {image}")
        except FileNotFoundError as e:
            print(f"❌ 加载失败: {e}")

load_images(path)

另外还有个关键排查点:你有没有挂载Google Drive?如果/content/Images/是存在Drive里的,那得先执行挂载代码,不然Colab访问不到:

from google.colab import drive
drive.mount('/content/drive')

这时候路径可能得改成/content/drive/MyDrive/Images/,你可以用下面的代码确认文件夹里的内容:

print(os.listdir('/content/Images/'))  # 看看文件夹里的文件名是不是和你想的一样

你用Image('/content/Images/CM148.jpg')能显示,说明路径本身是对的,大概率是train_images里的文件名不对,或者代码没正确拼接路径~

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

火山引擎 最新活动