如何将本地文件保存至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
相关产品推荐
相关产品推荐

