通过 Google 驱动器 API 在 python 中使用 ID 搜索文件夹

Search a folder using ID via Google Drive API in python

我正在使用 Google 驱动器的 API 使用 python 创建和搜索文件和文件夹 3. 使用 files.list 方法搜索文件夹开车 API。每次搜索都需要一个查询 q 作为输入。给出了一些查询示例here。我可以使用下面给出的名称成功搜索名为 hello 的文件夹:

service.files().list(q="name = 'hello'", pageSize=10, fields=files(id, name)).execute()

现在,假设文件夹的 ID 是 123,那么如何使用 ID 而不是名称来搜索此文件夹。我试过用 id = '123'id = 123 替换 q,但 none 似乎有效。我能找到的最接近的查询 here 是:

q = "'123' in parents"

但是这将return所有其父文件夹是我们要查找的文件夹的文件。

有什么方法可以直接通过ID搜索文件夹或文件吗?

谢谢。

我相信你的目标如下。

  • 您想使用 python 的 googleapis 通过文件夹 ID Drive API 检索文件夹元数据。

在这种情况下,下面的示例脚本怎么样?

folderId = "###" # Please set the folder ID.
res = service.files().get(fileId=folderId, fields="id, name").execute()
  • 在这种情况下,使用“文件:获取”方法。

附加信息:

  • 如果要检索特定文件夹下的文件夹列表,可以使用以下修改后的搜索查询。

      q = "'123' in parents and mimeType='application/vnd.google-apps.folder'"
    
    • 在这种情况下,123 是顶级文件夹 ID。
    • 在此修改中,给出了检索到的 mimeType。这样,只能检索文件夹列表。
  • 如果要检索除文件夹以外的文件列表,还可以使用以下搜索查询。

      q = "'123' in parents and not mimeType='application/vnd.google-apps.folder'"
    
  • 如果要从文件夹名称中检索文件夹 ID,可以使用以下示例脚本。在这种情况下,当存在 hello 的相同文件夹名称时,将返回这些文件夹。

      res = service.files().list(q="name = 'hello' and mimeType='application/vnd.google-apps.folder'", pageSize=10, fields="files(id, name)").execute()
    

注:

  • 在您的展示脚本中,请将 service.files().list(q="name = 'hello'", pageSize=10, fields=files(id, name)).execute()fields=files(id, name) 修改为 fields="files(id, name)"

参考文献: