从Google Colab中的驱动器读取文件

Ren*_*oSz 2 google-drive-api google-colaboratory

我已经阅读了有关如何打开驱动器的笔记本。我已经按照指示使用:

from google.colab import drive
drive.mount('/content/drive')
Run Code Online (Sandbox Code Playgroud)

此后,我可以!ls用来列出驱动器的内容,但无法读取或打开任何文件。我已经尝试过:

with open("/content/drive/My Drive/filename.ext", "r") as file:

file = open("/content/drive/My Drive/filename.ext", "r")

!cp "/content/drive/My Drive/filename.ext" "filename.ext"
Run Code Online (Sandbox Code Playgroud)

并且

import pandas as pd

file = pd.read_csv("/content/drive/My Drive/filename.ext")
Run Code Online (Sandbox Code Playgroud)

但以上方法均无效。我总是得到“不支持操作”或“无法打开文件进行读取”。我已经看到一些建议使用PyDrive。但这是通过将文件从Google云端硬盘复制到Google云端硬盘来完成的。我不明白为什么您必须来回复制文件,因为我需要遍历文件夹中的所有文件。Google Colab为什么不能只读取驱动器上存储的文件?还是我做错了什么?另一件事是,我上传了一堆csv文件,但Google驱动器将它们列为“ .csv.gsheet”(使用glob)。这可能是问题吗?我没有其他想法。

Joh*_*ant 8

我昨晚遇到了类似的问题。正如之前的一些回复者所发布的那样,存在影响您阅读文件的能力的担忧。这些问题是,第一,确保您的文件可以通过 Google Drive 从 Collab 笔记本访问;第二,确保您的文件格式正确。

我将解释这些步骤并附上屏幕截图。

  1. 打开 Google 协作。打开文件浏览器。
  2. 悬停时单击显示“安装驱动器”的图标。这将在您的笔记本中插入一个新单元格,其中包含以下代码:
from google.colab import drive
drive.mount('/content/drive')
Run Code Online (Sandbox Code Playgroud)

运行单元格。系统会提示您接受权限并获取用于安装驱动器的令牌。授予权限并将代码复制并粘贴到文本输入中。按回车键。

  1. 该驱动器现在出现在文件浏览器中。右键单击文件夹 /drive/My Drive 或单击三点操作菜单并选择上传。
  2. 在磁盘上找到您的文件并上传。
  3. 该文件出现在文件浏览器中。右键单击文件(或使用三点操作菜单)并选择复制路径。
  4. 将该文件路径粘贴到您的 pd.read_csv() 调用中。
  5. 使用 pd.read_csv 函数调用运行单元格。
  6. 您现在应该已将文件上传到 Google 云端硬盘中。可访问谷歌协作并保留文件格式,因为任何其他程序都没有访问它来修改格式。

下面是没有“权限”选项卡的示例,因为我之前授予了权限。 在此输入图像描述


MAN*_*ANU 7

很简单!

from google.colab import drive drive.mount('/content/drive')

复制粘贴令牌后,这将要求打开一个URL,该URL将授权安装。

如果您甚至现在仍无法读取文件,请在文件路径前添加前缀drive/My Drive”,这样您就可以开始使用了。

例如: file = 'drive/My Drive/data/file.txt'

data我的Google云端硬盘中包含file.txt文件的目录在哪里?


Ren*_*oSz 2

我(部分)根据鲍勃·史密斯和阿米·F 的回答知道了发生了什么。
我相信谷歌驱动器会阻止对转换为驱动器格式(gsheet、gdoc 等)的文件进行读取访问。因此,每当我尝试使用!cator时open,我都会收到“操作不受支持”错误。当我尝试鲍勃的示例时,创建一个文件然后读取它,它在我的笔记本上运行。
所以我设法阻止谷歌转换文件,删除旧文件并再次上传所有内容到驱动器。现在,我的所有 csv 都保持不变(无 .gsheet 扩展),并且我可以使用 open 来访问它们。