Google Drive API 如何找到文件的路径?

2023-11-23

我试图在使用 Google Drive API 获取文件列表时找到文件的路径。

现在,我可以获取文件属性(当前仅获取校验和、id、名称和 mimeType):

results = globalShares.service.files().list(pageSize=1000,corpora='user',fields='nextPageToken, files(md5Checksum, id, name, mimeType)').execute()
items = results.get('files',[])
nextPageToken = results.get('nextPageToken',False)
for file in items:
    print("===========================================================")
    pp.pprint(file)
print(str(len(items)))
print(nextPageToken)

列出文档(传递给 list() 方法的参数)

文件文档(每个文件返回的属性)


  • You want to retrieve a folder tree from a file in own Google Drive.
    • 您想要检索文件路径。因此,在您的情况下,它会检索每个文件和文件夹上方的父文件夹。
  • 您希望使用 google-api-python-client 和 python 来实现此目的。
  • 您已经能够使用 Drive API 获取文件元数据。

如果我的理解是正确的,那么这个示例脚本怎么样?不幸的是,在现阶段,Google API 无法直接检索文件的文件夹树。因此需要编写一个脚本来实现它。请将此视为多个答案之一。

示例脚本:

此示例脚本检索文件的文件夹树。使用此脚本时,请设置文件ID。

fileId = '###'  # Please set the file ID here.

tree = []  # Result
file = globalShares.service.files().get(fileId=fileId, fields='id, name, parents').execute()
parent = file.get('parents')
if parent:
    while True:
        folder = service.files().get(
            fileId=parent[0], fields='id, name, parents').execute()
        parent = folder.get('parents')
        if parent is None:
            break
        tree.append({'id': parent[0], 'name': folder.get('name')})

print(tree)

Result:

如果文件具有三层结构,则运行脚本时,将返回以下对象。

[
  {
    "id": "folderId3",
    "name": "folderName3"
  },
  {
    "id": "folderId2",
    "name": "folderName2"
  },
  {
    "id": "folderId1",
    "name": "My Drive"  # This is the root folder.
  }
]
  • 第一个元素是底层。

Note:

  • 在此脚本中,从OP想要检索“文件路径”的情况来看,它假设每个文件只有一个父文件。在Google Drive的文件系统中,每个文件可以有多个父文件。如果在您的情况下,有多个文件具有多个父级,则此脚本返回数组的第一个元素parents。请小心这一点。这也被提到皮诺伊德的评论.

参考:

  • 文件:获取
  • getfilelistpy
    • 作为另一个示例,有一个用于从 Google Drive 检索文件夹树的库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Drive API 如何找到文件的路径? 的相关文章

  • tensorflow Protobuf编译问题

    我想为 google 对象检测 API 编译 protobuf 库 我按照官方教程输入protoc object detection protos proto python out 然后我得到的是 object detection prot
  • 如何在 Windows 10 上使用 python 3.7 的 anaconda 包?

    我使用的是 Windows 10 Pro 64 位版本 我从此页面下载Anaconda3 2019 03 Windows x86 64 exe https www anaconda com distribution https www an
  • 只使用 Django 的某些部分?

    我喜欢 Django 但对于一个特定的应用程序 我只想使用它的一部分 但我对 Django 的内部工作原理还不够熟悉 所以也许有人可以指出我必须做什么的正确方向查看 具体来说 我想使用 模型和数据库抽象 The 缓存API http doc
  • 如何为 Intellij/PyCharm 设置 PYTHONSTARTUP 脚本

    我尝试添加PYTHONSTARTUP环境变量 我还尝试了自定义启动脚本 但更令人惊讶的是 这also没有工作 npa别名无法识别 出于一点绝望 我什至尝试添加到interpreter options 那什么也没做 实际上是什么Interpr
  • 如何使用 lxml 解析包含前缀但没有名称空间声明的 XML?

    我有一堆使用前缀但没有相应名称空间声明的 XML 文件 像这样的东西
  • turtle.Screen().screensize() 未输出正确的屏幕尺寸[重复]

    这个问题在这里已经有答案了 我编写了一些代码来在屏幕周围随机放置点 但是 它并没有覆盖整个屏幕 import turtle import random t turtle Turtle color red green blue pink ye
  • OpenCV - 我需要将彩色图像插入黑白图像并且

    我用以下代码将黑白图像插入彩色图像 没问题 face grey cv cvtColor face cv COLOR RGB2GRAY for row in range 0 face grey shape 0 for column in ra
  • 从主机名中提取域名

    是否有一种编程方式可以从给定的主机名查找域名 给出 gt www yahoo co jp 返回 gt yahoo co jp 有效但非常慢的方法是 拆分为 并从左侧删除 1 个组 使用 dnspython 加入并查询 SOA 记录 当返回有
  • Flask 中的 import 和 extends 有什么区别?

    我正在阅读 Flask Web 开发 在例4 3中 extends base html import bootstrap wtf html as wtf 我想知道 extends 和 import 有什么区别 我认为它们在用法上很相似 在什
  • python:是否有用于对输入流进行分块的库函数?

    我想对输入流进行分块以进行批处理 给定一个输入列表或生成器 x in 1 2 3 4 5 6 我想要一个能够返回该输入块的函数 说 如果chunk size 4 then x chunked 1 2 3 4 5 6 这是我一遍又一遍地做的事
  • 如何为 Python 中的应用程序设置专用屏幕区域?

    MS OneNote 就是一个很好的例子 它可以选择固定在屏幕的一侧 并将所有其他窗口推到一侧 当最大化或调整其他窗口大小时 它们只能扩展到 OneNote 的边缘 Python 使用 Tkinter 或其他模块是否具有此功能 感谢您的帮助
  • PyCharm - 如何挂起所有线程

    我们使用 PyCharm 5 0 1 进行多线程调试 当它在断点处停止时 只有特定线程停止 而所有其他线程继续 这使得 冻结时刻 和检查参数值以及其他线程的当前状态变得困难 当其中一个线程在断点处停止时 是否可以挂起所有线程 这在最新的 P
  • 检查多个 pd.DataFrame 是否相等

    是否有一种 Pythonic 方式 无循环或递归 来检查是否超过两个pd DataFrames 例如 pd DataFrames 列表 彼此相等吗 就像是 all x equals dfs 0 for x in dfs with dfs数据
  • 如何测试列表中多个值的成员资格

    我想测试两个或多个值是否在列表中具有成员资格 但我得到了意外的结果 gt gt gt a b in b a foo bar a True 那么 Python 可以同时测试列表中多个值的成员资格吗 这个结果意味着什么 See also How
  • 使用 statsmodels.formula.api 中的 ols - 如何删除常数项?

    我正在遵循第一个例子statsmodels教程 http statsmodels sourceforge net devel http statsmodels sourceforge net devel 如何指定在 ols 中不使用常数项进
  • 如何可视化多维数据上的 kmeans 聚类

    我在 mnist 数据集上使用 kmeans 聚类算法 并希望可视化聚类后的图 到目前为止我做了这个 from mnist import MNIST mndata MNIST Datasets X train y train mndata
  • 如何保持 python 3 脚本 (Bot) 运行

    不是母语英语 抱歉 英语可能很蹩脚 我也是编程新手 您好 我正在尝试使用 QueryServer 连接到 TeamSpeak 服务器来创建机器人 经过几天的努力 它有效 只有 1 个问题 而我却被这个问题困扰了 如果您需要检查 这是我正在使
  • Pip 突然使用了错误版本的 Python

    在 os x 上使用 pip 时遇到一个奇怪的问题 据我所知 快速查看我的 bash history 似乎可以确认 我最近没有对我的配置进行任何更改 唉 pip 命令似乎突然使用了与以前不同的 python 版本 到目前为止 我使用命令 p
  • Flask 扩展未在 app.extensions 中注册

    我想访问在我的 Flask 应用程序上注册的一些扩展 我尝试使用app extensions 但我初始化的一些扩展不在字典中 from flask import current app current app extensions get
  • Matplotlib 中的 TwoSlopeNorm 未按预期工作

    我正在尝试创建一个具有发散颜色图的绘图 该颜色图在零附近不对称 In this https stackoverflow com a 20146989 6288682例如 DivergingNorm函数被使用并产生我想要的 然而 我使用的是更

随机推荐

  • java.lang.NoClassDefFoundError:无法初始化类 sun.nio.ch.FileChannelImpl

    我正在开发一个执行的应用程序Jython 2 5 3脚本来自JAVA 1 6 027 该脚本只是使用编解码器库打开一个文件 如下所示 try from codecs import open as codecs open except Imp
  • 以正确的方式避免循环依赖 - NestJS

    说我有一个StudentService一种为学生增加课程的方法LessonService使用一种将学生添加到课程中的方法 在我的课程和学生解决程序中 我希望能够更新本课程学生关系 所以在我的LessonResolver我有一些类似的事情 a
  • 在 VS Code 控制台中调试 JavaScript

    如何在 VSCode 控制台中快速测试 JavaScript 如下图所示 我必须安装扩展才能执行此操作吗 我在 Ubuntu 和 Windows 10 中使用 VSCode 但我没有看到Console 我所看到的只是调试控制台 Proble
  • 这个带有可变引用参数的 JavaScript 函数是纯函数吗?

    我有同样的问题this one 但是在 JavaScript 的上下文中 From 维基百科 纯函数 的返回值与same论据 那里进一步声称 纯函数不允许使用 可变引用参数 来改变返回值 在 JavaScript 中 每个普通对象都作为 可
  • 将简单套接字变成 SSL 套接字

    我编写了简单的 C 程序 它们使用套接字 客户端 和 服务器 UNIX Linux 用法 服务器端简单地创建一个套接字 sockfd socket AF INET SOCK STREAM 0 然后将其绑定到 sockaddr bind so
  • 为什么 JPA 实体中的属性不允许“公共”?

    The JPA 2 0规范第 22 页说 类的实例变量必须 是私有的 受保护的或包的 可见性与是否 字段访问或属性访问是 用过的 当使用属性访问时 属性访问器方法必须是 公共或受保护 为什么不允许公众访问 对于公共字段 代理将无法可靠地工作
  • 使用自定义访问者时,如何停止使用 Boost Graph Library 进行广度优先搜索?

    假设我找到了符合我的条件的节点 我需要停止搜索 解决方案是抛出已知类型的异常 然后在调用方捕获它 来自FAQ 如何提前退出 BFS 等算法 创建一个在您想要中断搜索时抛出异常的访问者 然后将对 breadth first search 的调
  • Select 和 SelectMany 之间的区别

    我一直在寻找之间的区别Select and SelectMany但我一直没能找到合适的答案 我需要了解使用 LINQ To SQL 时的区别 但我发现的只是标准数组示例 有人可以提供 LINQ To SQL 示例吗 SelectMany展平
  • OpenCV Android - 使用 CameraBridgeViewBase 的颜色问题

    我在使用 Android 模拟器和 OpenCV 时遇到一个奇怪的问题CameraBridgeViewBase Using onCameraFrame我收到一张看起来未正确解码的图片 public Mat onCameraFrame CvC
  • 数组的 Arrays.asList()

    这个转换有什么问题吗 public int getTheNumber int factors ArrayList
  • Haskell 计算密集型线程会阻塞所有其他线程

    我想编写一个程序 其主线程分叉一个新线程进行计算并等待它完成一段时间 如果子线程没有在给定时间内完成 它将超时并被终止 我有以下代码 import Control Concurrent fibs Int gt Int fibs 0 0 fi
  • 恢复 Django-mailer 数据库时 MySQL 错误 1118(行大小太大)

    我从 django 应用程序转储了一个正在运行的生产数据库 并尝试将其迁移到我的本地开发环境 生产服务器运行MySQL 5 1 本地我有5 6 当迁移 django mailer 的 messagelog 表时 我遇到了可怕的错误 1118
  • SQL 错误:ORA-02000:创建基于标识列的表时缺少 ALWAYS 关键字

    我尝试在表上创建一个自动递增列 正如我在此看到的post有两种方法 使用 Identity 列的第二种实现是一个更优雅的解决方案 但是当我尝试实现它时 出现以下错误 Error at Command Line 3 Column 31 Err
  • 散点图中的颜色编码误差线

    我正在尝试创建一个森林地块 with R plotly我想通过相应的 p 值对效应大小 点 及其误差线进行颜色编码 以下是玩具数据 set seed 1 factors lt paste0 1 25 age effect sizes lt
  • 为什么 Devise 将注册错误重定向到不同的页面?

    我创建了新的 Rails 项目 仅使用生成的主页控制器来测试它 我的设计型号是User 所以注册页面是http localhost 3000 users sign up 如果我触发错误 例如 在未提供密码的情况下提交表单 我会被重定向到ht
  • UIView alpha = 0 导致触摸被删除到下面的视图

    因此 我创建了一个玻璃窗格或自定义 UIView 来处理触摸 该玻璃窗格位于其他视图 例如虚拟 UIButtons 之上 当我将 alpha 设置为 0 时 触摸实际上会被玻璃视图下方的视图拦截 这是错误的 但是 当我将 alpha 设置为
  • 如何在 iTextSharp 中将 PDF 转换为文本文件

    我必须从 PDF 文件中检索文本 但使用下面的代码我只得到空文本文件 for int i 0 i lt n i pagenumber i 1 filename pagenumber ToString while filename Lengt
  • 如何在 imacros 中使用 JavaScript?

    我不知道如何在 JavaScript 中使用 imacros 我查看了他们的帮助 在 Stack Overflow 上看到了无数的例子 但不知道缺少什么 任何地方都没有明确解释 这是我尝试过的 使用他们的帮助文件中解释的示例 http wi
  • 如何防止 FileUpload 控件在回发时被清除? [复制]

    这个问题在这里已经有答案了 我在使用 FileUpload 控件时遇到了一些问题 想知道是否可以获得一些帮助 在我的页面上 我有一个 FileUpload 控件和一个下拉列表 因此 用户浏览到他们想要的文件 然后从下拉列表中选择一个选项 这
  • Google Drive API 如何找到文件的路径?

    我试图在使用 Google Drive API 获取文件列表时找到文件的路径 现在 我可以获取文件属性 当前仅获取校验和 id 名称和 mimeType results globalShares service files list pag