使用 Colab 访问“与我共享”

Leo*_*Rai 50 python shared-directory google-colaboratory flysystem-google-drive

我想访问 Google Drive 的“与我共享”目录中的文件。

在 Colab python notebook 中,以下命令:

import os
from google.colab import drive
drive.mount('/content/drive')
!ls "/content/drive/My Drive"
Run Code Online (Sandbox Code Playgroud)

然而,适用于“我的驱动器”目录

!ls "/content/drive/My Drive"
Run Code Online (Sandbox Code Playgroud)

失败

FileNotFoundError: [Errno 2] 没有这样的文件或目录:

我知道我可以手动将文件夹添加到我的驱动器并继续(如此处所述),但我想直接访问共享文件夹,例如我可能需要自动处理文件与我实时分享。

我也知道“OneDrive”等其他云平台存在相同/类似的问题。

问题是:

  1. 如果没有直接的方法,至少有解决方法吗?
  2. 与我共享代码的人也可以访问我的驱动器吗?

Bob*_*ith 33

RE:是否有解决方法 -

在 Web UI 中加载您的共享文件,右键单击感兴趣的目录,然后选择“添加到我的驱动器”。然后,该文件夹将/content/drive/My Drive如您所愿地出现。

就上下文而言,Drive 不像一个普通的文件系统:文件和目录可以有多个父目录,因此出现在您的文件列表和原始所有者中。

RE:其他用户是否可以访问云端硬盘文件?——

不,笔记本是 Drive 中的一个不同对象,具有不同的 Drive 权限。


小智 27

另一种解决方法是转到 Google Drive,右键单击相关文件夹,然后单击“将快捷方式添加到 Drive”。这将允许您从驱动器访问该文件夹!

  • 我有一个包含许多子文件夹和层次结构的文件夹。如果我从驱动器钻取此快捷方式,似乎随机文件和文件夹不可用。尝试通过“我的驱动器”(安装在 colab 上后)访问它们也不起作用。丢失的文件/文件夹似乎是随机的。 (2认同)

die*_*rez 16

我通过添加 main/top 文件夹作为我的驱动器的快捷方式来解决,然后我使用了像你这样的代码

我的情况:

我想从与我共享的文件夹中的文件夹中加载一个 csv 文件,因此在我的 gdrive 中将位于“与我共享/folder_0/folder_1/file.csv”

所以我去了 folder_0 右下角点击“添加快捷方式到驱动器”-->“我的驱动器”-->“添加快捷方式”。现在整个 folder_0 应该作为快捷方式添加到您的驱动器中。

最后在 colab nb 中:

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

pandas.read_csv("/content/drive/My Drive/folder_0/folder_1/file.csv")
Run Code Online (Sandbox Code Playgroud)

在我的例子中是一个加载在 Pandas 中的 csv 文件,但这里重要的是 path "/content/drive/My Drive/folder_0/folder_1/file.csv", where"/content/drive/My Drive/"总是这样的,并且"folder_0/folder_1/file.csv"是必须等于你刚刚添加的快捷路径的部分


小智 15

为了访问 Google Colab 中与您共享的文件夹或文件,您必须:

  1. 转至Google 云端硬盘中与我共享
  2. 选择您要访问的文件夹或文件。
  3. 右键单击它并选择添加驱动器快捷方式
  4. 将出现一个弹出窗口,选择MyDrive,然后单击“添加快捷方式”
  5. 现在,转到您的 Google Colab Notebook 并安装到 Google Drive:
from google.colab import drive

drive.mount("/content/gdrive")
Run Code Online (Sandbox Code Playgroud)
  1. 假设您想要访问一个名为“ Dataset ”的文件夹,您可以通过以下方式执行此操作:
dataset_dir = '/content/gdrive/My Drive/Dataset'
Run Code Online (Sandbox Code Playgroud)
  1. 现在您可以访问并处理该文件夹了。

  • 捷径技巧奏效了!谢谢你! (3认同)

小智 6

如果您想将文件从共享目录硬复制到您自己的驱动器,我按如下操作:

  • 如上所述安装驱动器
  • 在我自己的目录中创建共享文件夹的快捷方式或软链接
  • 那么如果你“ls”你的驱动器你应该看到这样的东西

“新快捷方式”->/gdrive/.shortcut-targets-by-id/dffdffxxxxxxxxxx/[shared folder]

  • 我创建了一个新的本地目录,我想要其中的所有内容
  • 我“cd”到该目录
  • 我将共享文件夹的内容复制到本地新创建的目录中

    cp -rp '/gdrive/.shortcut-targets-by-id/dffdffxxxxxxxxxx/[shared folder]/*

它工作得很好。


Ami*_*ena 6

import os
from google.colab import drive
drive.mount('/content/drive',force_remount=True)
os.chdir("/content/drive/.shortcut-targets-byid/10xasdbasbdiluabsdiubiuadWEWEdaq/SHAREDFOLDER")
Run Code Online (Sandbox Code Playgroud)

现在相同的代码将适用于所有团队(所有者需要与团队共享共享文件夹)


小智 5

与我共享代码的人也可以访问我的驱动器吗?

不能,他们只能访问您与他们共享的内容(例如,您正在处理的笔记本)。有关此处的权限的更多信息:


Sus*_*S N 5

找到了与您一起访问共享目录内容的解决方案

  1. 从您的 Google 云端硬盘转到与我共享。

  2. 找到目录,右键添加快捷方式然后指定路径获取保存快捷方式

  3. 安装驱动器

    from google.colab import drive drive.mount('/content/drive',force_remount=True)

    import os

    os.chdir("/content/drive/My Drive")

并转到您指定的快捷方式位置并键入

ls
Run Code Online (Sandbox Code Playgroud)

您可以看到快捷方式并通过以下方式访问它 cd <directory>


Ahm*_*man 5

您可以创建从“与我共享”文件到您的云端硬盘的快捷方式,这对我有用:

Steps

  1. 在您的驱动器上打开“与我共享”
  2. 选择文件夹或文件,单击其上的右键并选择添加快捷方式,然后在“我的驱动器”中选择路径 噗