在Colab中使用“安装驱动器” Web按钮解决(已解决)错误。从google colab访问“与我共享”文件(y2020,以前的解决方案似乎失败了)

时间:2020-04-30 14:16:20

标签: google-colaboratory

[较新版本]:colab团队报告说,他们已于2020年5月27日更正了此问题。 我检查了-现在可以了。
链接到问题:https://github.com/googlecolab/colabtools/issues/1205

==================================== = ==================

[新编辑:]很明显,只有通过Web界面按钮“安装驱动器”将google驱动器安装到colab时,才会出现以下问题 如果通过命令行方式安装,则不会出现。 因此,似乎网络方式存在问题。请参阅下面我自己的答案中的详细信息。 检查“ Chrome”浏览器。

==================================== = ==================

[原始问题:]

如何从Google colab访问“与我共享”? (接口现在(2020年)似乎已更改,以前描述的解决方案似乎不起作用)。

更多详细信息:

这个问题已经问了好几次了, 描述的解决方案,例如此处:https://stackoverflow.com/a/53887376/625396 该问题我看不到“添加到我的云端硬盘”,而是看到“添加快捷方式到云端硬盘”。 完成后,我们可以通过Google驱动器的网络界面看到该快捷方式的确出现。

但是无法通过colab实用程序看到快捷方式,例如 os.listdir()! 因此,快捷方式对于colab似乎是不可见的,并且不清楚如何访问它。

以下是屏幕截图,显示colab看不到“与我共享”的快捷方式-“ cytotrace_datasets”,但可以看到Google驱动器的网络GUI。

这是我通过colab看到的屏幕截图(无法看到快捷方式): enter image description here

这是我通过Google Drive的Web-GUI看到的屏幕截图(可以看到快捷方式): enter image description here

2 个答案:

答案 0 :(得分:3)

简述:请勿通过Web界面按钮“安装驱动器”安装Google驱动器(它有问题),但是以“旧”命令行方式进行安装,就不会有问题。

详细信息:

在获得上述出色答案并进行尝试之后, 看来我发现了一件奇怪的事情,该问题导致了更简单的解决方案,并且可能表明当前存在通过Web界面按钮“安装驱动器”安装Google驱动器的错误。

我的意思是不要通过接口安装驱动器: enter image description here

但是以旧的方式进行: enter image description here

仅此而已-您将可以在的帮助下访问之前添加的文件 “向云端硬盘添加快捷方式”: enter image description here

答案 1 :(得分:1)

假设您要从驱动器读取共享的csv文件。您已完成“向云端硬盘添加快捷方式”。

1)在Colab笔记本电脑上,连接到驱动器。

# Import PyDrive and associated libraries.
# This only needs to be done once per notebook.
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

# Authenticate and create the PyDrive client.
# This only needs to be done once per notebook.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

2)获取要访问的共享文件的ID。 打开文件 ->转到链接共享[https://drive.google.com/open?id= 1JKECh3GNry6xbAK6aBSzQtSntD4GTEl ]->复制'id ='之后的字符串

3)回到合作

# A file ID looks like: laggVyWshwcyP6kEI-y_W3P8D26sz
file_id = '1JKECh3GNry6xbAK6aBSzQtSntMD4GTEl'

downloaded = drive.CreateFile({'id': file_id}) #important
print(downloaded['title'])  # it should print the title of desired file
downloaded.GetContentFile('file.csv')  
#Finally, you can read the file as pandas dataframe. 
import pandas as pd
df= pd.read_csv('file.csv') 

注意:这是我对堆栈溢出问题的第一个答案