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

如何在Google Colab中上传包含子文件夹的图片数据集?

嘿,刚好碰到过这个问题!files.upload()确实只能处理单个文件,要上传带多层子文件夹的图片数据集,有几个靠谱的方案,你按需选就行:

方法1:挂载Google Drive(最推荐,适合大/常用数据集)

如果你的数据集比较大,或者之后还要反复用到,直接挂载Google Drive是最省心的:

  • 先运行这段代码授权挂载:
from google.colab import drive
drive.mount('/content/drive')
  • 执行后会弹出一个授权链接,点击它登录你的Google账号,复制生成的授权码,粘贴到Colab的输入框里回车,就能完成挂载。
  • 挂载成功后,你可以在Colab左侧的文件浏览器里看到/content/drive/MyDrive路径。提前把你的数据集文件夹上传到Google Drive里,之后就可以直接通过这个路径读取数据了,比如遍历子文件夹里的图片:
import os

# 替换成你在Drive里的数据集文件夹路径
data_root = '/content/drive/MyDrive/MyImageDataset'

# 遍历所有子文件夹和图片文件
for root, dirs, files in os.walk(data_root):
    for filename in files:
        if filename.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp')):
            img_full_path = os.path.join(root, filename)
            # 在这里添加你的图片处理逻辑
            print(f"找到图片:{img_full_path}")
方法2:上传ZIP压缩包后解压(适合小型临时数据集)

如果你的数据集不大,只是临时用一次,可以先把本地的文件夹打包成ZIP文件,再上传解压:

  • 第一步,上传ZIP包:
from google.colab import files
uploaded = files.upload()
  • 上传完成后,找到你上传的ZIP文件名(比如my_dataset.zip),运行以下代码解压到指定目录:
import zipfile
import io

# 替换成你的ZIP文件名
zip_filename = 'my_dataset.zip'
# 解压到/content/dataset目录下
extract_path = '/content/dataset'

with zipfile.ZipFile(io.BytesIO(uploaded[zip_filename]), 'r') as zip_ref:
    zip_ref.extractall(extract_path)

print(f"数据集已解压到:{extract_path}")
  • 解压完成后,/content/dataset里就会保留原有的子文件夹结构和所有图片了。
方法3:通过命令行拉取(适合网络上的公开数据集)

如果你的数据集托管在GitHub、GitLab或者其他公开存储平台,直接用Colab的命令行工具下载更高效:

比如克隆GitHub仓库:

!git clone https://github.com/your-username/your-dataset-repo.git

或者用wget下载ZIP包并解压:

!wget https://example.com/your-dataset.zip
!unzip your-dataset.zip -d /content/dataset

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:41:14