【问题标题】:accessing "Shared with me" with Colab使用 Colab 访问“与我共享”
【发布时间】:2019-06-18 11:54:13
【问题描述】:

我想访问 Google 云端硬盘的“与我共享”目录中的文件。

在 Colab python notebook 中,以下命令:

import os
from google.colab import drive
drive.mount('/content/drive')
!ls "/content/drive/My Drive"

不过适用于“我的云端硬盘”目录

!ls "/content/drive/My Drive"

失败

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

我知道我可以手动将文件夹添加到我的驱动器并继续 (as mentioned in here),但我想直接访问共享文件夹,因为我可能需要使用与我实时共享的文件。

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

问题是:

  1. 如果没有直接的方法,是否至少有一个 解决方法?
  2. 与我共享代码的人是否也可以访问我的云端硬盘?

【问题讨论】:

  • ls "/content/drive/My Drive" 看起来不像是一个有效的 python 语句
  • 我很抱歉,你说得对,我的意思是“在 python 笔记本中”。已更新,感谢您的关注。
  • ls "/content/drive/My Drive" 行前面不应该有一个感叹号吗,因为我们在笔记本上下文中?

标签: python google-colaboratory shared-directory flysystem-google-drive


【解决方案1】:

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

【讨论】:

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

RE: 有解决方法吗--

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

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

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

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

【讨论】:

  • 看不到“添加到我的云端硬盘”选项,但有“将快捷方式添加到云端硬盘”选项。
【解决方案3】:

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

我的情况:

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

所以我去了folder_0右下角点击“添加快捷方式到驱动器”-->“我的驱动器”-->“添加快捷方式”。现在应该将整个文件夹_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")

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

【讨论】:

  • 嗨@diego-florez,感谢您的回答。您可以对其进行编辑以阐明您的解决方案吗?谢谢!
【解决方案4】:

您可以创建一个快捷方式,从您的“与我共享”文件到您的云端硬盘,它适用于我:

Steps

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

【讨论】:

  • 它对我有用。您需要选择要访问的路径,单击它的右键并选择添加快捷方式。现在,此路径显示在您云端硬盘的根目录中。
【解决方案5】:

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

  1. 从你的谷歌驱动器中与我分享。

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

  3. 安装驱动器

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

    import os

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

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

ls

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

【讨论】:

  • 为胜利创造捷径!
【解决方案6】:

我与之共享代码的人是否也可以访问我的云端硬盘?

不,他们只能访问您与他们共享的内容(例如,您正在处理的笔记本)。 more info on permissions here:

【讨论】:

    【解决方案7】:

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

    1. 转到 Google 云端硬盘中的与我共享
    2. 选择您要访问的文件夹或文件。
    3. 右键单击它并选择添加快捷方式到驱动器
    4. 会弹出一个窗口,选择MyDrive,然后点击Add Shortcut
    5. 现在,转到您的 Google Colab 笔记本并安装到 Google 云端硬盘:
    from google.colab import drive
    
    drive.mount("/content/gdrive")
    
    1. 假设您要访问名为“Dataset”的文件夹,您可以这样做:
    dataset_dir = '/content/gdrive/My Drive/Dataset'
    
    1. 现在您可以访问并处理此文件夹了。

    【讨论】:

    • 捷径成功了!谢谢!
    【解决方案8】:

    如果您想将共享目录中的文件硬拷贝到您自己的云端硬盘中,我执行以下操作:

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

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

    • 我创建了一个新的本地目录,我希望在其中包含所有内容
    • 我“cd”到那个目录
    • 我将共享文件夹的内容复制到本地新创建的目录中

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

    效果很好。

    【讨论】:

      【解决方案9】:
      import os
      from google.colab import drive
      drive.mount('/content/drive',force_remount=True)
      os.chdir("/content/drive/.shortcut-targets-byid/10xasdbasbdiluabsdiubiuadWEWEdaq/SHAREDFOLDER")
      

      现在所有团队都可以使用相同的代码(所有者需要与团队共享SHAREDFOLDER)

      【讨论】:

        【解决方案10】:

        我觉得是错别字

        import os
        from google.colab import drive
        drive.mount('/content/gdrive')
        !ls "/content/gdrive/My Drive"
        

        应该是对的。

        你错过了'g'

        【讨论】:

          【解决方案11】:

          这是一个对我来说很好用的 hack。我必须加载与我共享的手套矢量文件,该文件位于我的谷歌驱动器的“与我共享”文件夹中。

          右键单击文件->选择添加快捷方式到驱动器->选择驱动器/我的驱动器中的任何位置。

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

          上面的代码 sn-p 会将您的 gdrive 挂载到 colab 笔记本中。 点击挂载的文件夹找到你的文件->右键->复制路径

          现在,您可以使用刚刚复制的路径读取任何文件!

          【讨论】:

            【解决方案12】:

            一种解决方法是使用以下方法从 Google Drive 导入共享文件。

            # Install PyDrive
            !pip install PyDrive
            
            #Import modules
            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
            auth.authenticate_user()
            gauth = GoogleAuth()
            gauth.credentials = GoogleCredentials.get_application_default()
            drive = GoogleDrive(gauth)
            
            #Get the Shareable link
            #Ex link : https://drive.google.com/file/d/1c7Ffo1Go1dtUpKcSWxdbdVyW4dfhEoUp/view?usp=sharing
            # Get the id from the link 1c7Ffo1Go1dtUpKcSWxdbdVyW4dfhEoUp
            downloaded = drive.CreateFile({'id':"your_file_ID"})   
            downloaded.GetContentFile('your_file_name.csv')       
            
            #Read data
            import pandas as pd
            df = pd.read_csv("your_file_name.csv")
            

            【讨论】:

              【解决方案13】:

              ----最简单的方法!----如果您需要所有成员访问此文件,我建议所有成员都创建一个文件夹(命名为“快捷方式”)并执行以下操作:

              1. 查找与您共享的“路径”
              2. 右键单击“路径”中的文件/文件夹并选择“添加快捷方式到驱动器”
              3. 从“MyDrive”中选择“快捷方式”文件夹,然后单击“添加快捷方式”

              最终通过这些代码行,所有成员都可以访问和挂载与他们共享的相同数据。

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

              您可以在代码中的任意位置使用 data_path!

              【讨论】:

              【解决方案14】:

              #步骤一:

              将 google 驱动器安装到您的 colab 笔记本中

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

              #第二步:

              将目录更改为您的驱动器

              os.chdir("/content/drive/MyDrive/")
              

              #步骤 3:

              创建一个新目录来存储您的文件

              !mkdir copyithere
              

              #第四步:

              返回共享文件夹并创建一个指向当前“copyithere”文件夹的快捷方式

              #第五步:

              将快捷方式重命名为不包含空格的名称

              !mv "your shortcut name" targettobecopied
              

              #步骤 6:

              移动到重命名的快捷方式“targettobecopied”

              os.chdir("/content/drive/MyDrive/copyithere/targettobecopied")
              

              #步骤 7:

              现在从快捷方式复制到您的实际谷歌驱动器

              %%time 
              !yes | cp -R -u -p -r -n * /content/drive/MyDrive/copyithere
              

              ~瑞达

              【讨论】:

                【解决方案15】:

                另一种解决方法:单击要添加到我的驱动器的文件夹。然后 Shift+z 并选择要将文件夹添加到的位置。更多信息here

                【讨论】:

                  猜你喜欢
                  • 2021-08-12
                  • 2012-09-10
                  • 2021-11-28
                  • 2010-11-29
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2019-05-21
                  • 1970-01-01
                  相关资源
                  最近更新 更多