【问题标题】:How to get the file path for a file in google drive for use in colab?如何获取谷歌驱动器中文件的文件路径以在 colab 中使用?
【发布时间】:2021-07-31 23:01:45
【问题描述】:

我需要存储在 Google 驱动器中的文件的文件路径,以便我可以从 Google colab 笔记本访问它。

例如

my_dat = ZipFile('/content/drive/MyDrive/some/file/structure/dat.zip', 'r')

有没有一种快速的方法可以“复制为路径”或以其他方式尽快从谷歌驱动器获取剪贴板的文件路径?

我目前的方法是手动输入文件路径,对于目录深处的文件重复执行此操作非常很乏味。基本上,我所需要的只是一种快速轻松地在我的剪贴板上添加“MyDrive/some/file/structure/dat.zip”的方法(例如,类似于here),而无需手动输入。

【问题讨论】:

  • 最好的方法是做一个 file.get 搜索你的文件,然后逐步向上父母。没有快速的方法可以做到这一点。
  • @DaImTo 我很感激,甚至不知道我能做到这一点。这真的很棒,因为我使用的一些文件的路径包含视觉上模棱两可的空格数(不要问我为什么),但这使得手动编写路径成为一项痛苦的练习。如果您愿意,请随时将您的评论作为答案。

标签: google-drive-api google-colaboratory flysystem-google-drive


【解决方案1】:

我知道使用 Google drive api 执行此操作的最佳方式或真正唯一的方式是使用

file.get 方法,这将返回一个名为 parents 的字段。获得父 ID 后,您可以在父级上执行文件获取并继续直到父级为 root。这意味着很多电话,但这是我发现实现这一目标的唯一方法。

【讨论】:

    【解决方案2】:

    我制作了自己的库以使其更容易。

    !pip install kora
    from kora.drive import get_path
    p = get_path(file_id)
    

    【讨论】:

    • 太棒了!对于菜鸟,如何找到文件ID?
    • 我假设您已经从您共享给您的文件的链接中获得了它。那么,你必须从什么开始?如果你已经有了路径,我创建了另一个函数来获取它的 file_id。
    • 来自drive.google.com/file/d/0B0l6No313QAhY3ZiVHFTeVpsTms的链接,它的ID是0B0l6No313QAhY3ZiVHFTeVpsTms
    • 啊,我明白了。这是一个 zip 文件,位于我的谷歌驱动器中。虽然它不是公共文件。 (由我上传,所以不分享)。您如何访问“drive.google.com/file/d/0B0l6No313QAhY3ZiVHFTeVpsTms”样式链接?对我来说,我导航到该目录,它有一个“drive.google.com/drive/u/0/folders/sdlfkjsldkfjskdfj”类型的链接,但我似乎无法获得 /file/d/ 链接?当我点击一个文件时,它只是预览它而不更改 url 栏中的 url。
    • 我正在使用我的 ipad。在计算机上,您可以右键单击 zip 文件并选择“获取链接”。
    猜你喜欢
    • 2017-09-23
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 2020-01-10
    • 2021-06-13
    • 2020-05-17
    • 2021-08-06
    • 2021-05-07
    相关资源
    最近更新 更多