谷歌云盘Colaboratory如何载入文件

谷歌云的Colaboratory的项目的确不错,提供Tesla K80这块高级的GPU加速功能,但是也存在一个问题。

因为Colaboratory是完全云端的,所以,每次如果想让他访问谷歌云盘的内容,必须要先进性授权操作

授权绑定代码如下:

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

接下来的操作可能会遇到一些坑。

# 指定Google Drive云端硬盘的根目录,名为drive
!mkdir -p drive
!google-drive-ocamlfuse drive

这时候我们用!ls查看文件绑定目录,会发现变为

这里写图片描述

之后,我们指定想要访问的谷歌云盘目录:

比如说,此时我的云盘目录是这样的
这里写图片描述

我想访问data_mining里的文件,应该这样写

# 指定当前的工作文件夹
import os

# 此处为google drive中的文件路径,drive为之前指定的工作根目录,要加上
os.chdir("drive/Colab Notebooks/data_mining") 

但是失败了,尽量在命名文件的时候不要用中文

这是后返回去重新指定新的路径,执行:

# 指定Google Drive云端硬盘的根目录,名为drive
!mkdir -p drive
!google-drive-ocamlfuse drive
# 指定当前的工作文件夹
import os

# 此处为google drive中的文件路径,drive为之前指定的工作根目录,要加上
os.chdir("drive/Colab Notebooks") 

成功了

!ls

结果是:

这里写图片描述

已经进入Colab里面了,如果我们写

os.chdir("drive/Colab Notebooks/data_mining") 

会报错(我也不知道为什么,可能是云服务器访问的特点吧)

此时,直接写

os.chdir("data_mining") 

就进入到data_mining里面了

但是有一点是,总体来说,访问云盘的资源没有我想象的那么稳定,常常会出各种莫名其妙的错误,导致没有办法访问云盘资源,colab稳定性这一点做的并不好。

参考资料
Colaboratory 指定Google Drive文件夹
薅资本主义羊毛,用Google免费GPU

你可能感兴趣的:(数据科学)