如何无需重复上传,在Google Colaboratory中访问Google Drive的.zip数据
嘿,这个问题我太有共鸣了!每次跑模型都要上传大体积的zip包,不仅费时间还容易断连,给你几个亲测好用的高效方法,再也不用重复折腾上传了:
方法1:直接挂载你的Google Drive(最常用且省心)
这是Colab官方推荐的方式,挂载成功后你就能直接访问Drive里的所有文件,包括你的zip数据集,每次启动新会话只需要执行一次挂载操作就行。
操作步骤超简单:
- 运行下面的代码块,会弹出一个授权链接,点击链接登录你的Google账号,复制生成的授权码粘贴到输入框,回车就完成挂载了:
from google.colab import drive drive.mount('/content/drive')
- 挂载完成后,用
!ls /content/drive/MyDrive就能查看Drive里的文件,找到你的zip包的完整路径(比如/content/drive/MyDrive/datasets/train_data.zip) - 之后你可以选择把zip解压到Colab的临时存储区(读取速度更快):
!unzip /content/drive/MyDrive/datasets/train_data.zip -d /content/train_data
要是你的训练框架支持直接读取zip内的文件(比如Pandas、TensorFlow),甚至可以跳过解压步骤,直接从Drive的zip包加载数据:
import pandas as pd # 直接读取zip里的csv文件 df = pd.read_csv('/content/drive/MyDrive/datasets/train_data.zip')
方法2:提前把zip包解压到Drive,直接读取解压后的文件
如果你的zip包每次训练都要解压,不如提前在Drive里把它解压好,之后每次训练直接读取解压后的文件夹就行,省了解压的时间成本:
- 你可以直接在Google Drive网页端右键zip包,选择「解压到当前文件夹」;也可以在Colab里运行命令把文件存到Drive的指定目录:
!unzip /content/drive/MyDrive/datasets/train_data.zip -d /content/drive/MyDrive/datasets/unzipped_train_data
- 之后训练时直接访问
/content/drive/MyDrive/datasets/unzipped_train_data里的文件就好,读取速度比反复读zip包快很多。
方法3:把数据集放到Colab专属文件夹(更整洁)
Colab在你的Drive里默认有个「Colab Notebooks」文件夹,你可以把常用的数据集(不管是zip还是解压后的文件)移到这个文件夹下,挂载Drive后访问路径更短,也不容易和其他Drive文件混在一起,找起来更方便。
几个小提醒:
- 如果是别人共享给你的zip包,记得先在Drive网页端把它「添加到我的云端硬盘」,不然挂载后可能找不到文件
- 超大体积的数据集优先选择提前解压到Drive,避免每次会话都要重复解压,浪费算力和时间
内容的提问来源于stack exchange,提问作者Nagesh Waghmare




