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

如何将本地文件保存至Colab指定目录以适配sklearn.datasets.load_files加载

没问题,我来帮你搞定这个事儿!

如何在Colab上传本地文件到指定目录并适配sklearn.load_files

首先得明确:sklearn.datasets.load_files要求目标目录下直接存放子文件夹作为类别标签,每个子文件夹里放对应类别的文件。所以我们先搭好符合要求的目录结构,再上传文件。

步骤1:创建符合要求的目标目录

先在Colab里创建你需要的特定目录,以及对应的子类别文件夹,比如我们要做一个分类数据集,根目录叫my_custom_dataset,子类别是cat_photos和dog_photos:

import os

# 定义根目录路径
target_root = '/content/my_custom_dataset'
# 定义各个类别的子文件夹名
class_folders = ['cat_photos', 'dog_photos']

# 创建根目录(exist_ok=True避免目录已存在时报错)
os.makedirs(target_root, exist_ok=True)
# 循环创建每个类别子文件夹
for folder in class_folders:
    os.makedirs(os.path.join(target_root, folder), exist_ok=True)

步骤2:上传本地文件到对应目录

这里分两种场景,按需选择:

场景1:少量文件,逐个上传

运行下面的代码,会弹出本地文件选择窗口,选完文件后,我们把它移动到指定的类别子文件夹里:

from google.colab import files
import shutil

# 触发本地文件上传
uploaded_files = files.upload()

# 把上传的文件移动到目标类别文件夹(这里以cat_photos为例)
for filename in uploaded_files.keys():
    target_path = os.path.join(target_root, 'cat_photos', filename)
    shutil.move(filename, target_path)
    print(f"文件 {filename} 已移至 {target_path}")

如果要传其他类别的文件,重复运行这段代码,修改目标子文件夹名即可。

场景2:大量文件,用ZIP包批量上传

如果本地已经按类别整理好文件夹(比如本地有my_custom_dataset/cat_photos和my_custom_dataset/dog_photos),先把整个my_custom_dataset压缩成ZIP包,再用下面的代码上传解压:

from google.colab import files
import zipfile

# 上传ZIP包
uploaded_zip = files.upload()

# 获取上传的ZIP文件名(默认取第一个上传的文件)
zip_name = next(iter(uploaded_zip.keys()))

# 解压到/content目录下(这样解压后就是/content/my_custom_dataset)
with zipfile.ZipFile(zip_name, 'r') as zip_ref:
    zip_ref.extractall('/content/')

# 可选:删除临时的ZIP文件
os.remove(zip_name)
print("ZIP包已解压完成,临时文件已删除")

步骤3:用sklearn.load_files加载数据集

目录和文件都准备好后,直接加载根目录即可:

from sklearn.datasets import load_files

# 加载数据集
dataset = load_files(target_root)

# 验证加载结果
print(f"识别到的类别:{dataset.target_names}")
print(f"总文件数量:{len(dataset.data)}")

小检查

如果不确定目录结构对不对,运行下面的命令查看目录树:

!ls -R /content/my_custom_dataset

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:49:55