gpt4 book ai didi

python - 在给定文件路径的情况下在 Google 云端硬盘中查找文件 ID(例如 : "MyDrive/Folder1/Folder2")

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:19 24 4
gpt4 key购买 nike

我目前正在开发一个小程序,它可以获取 Google 云端硬盘中的文件/文件夹路径(例如:“MyDrive/Folder1/Folder2/Folder3”),并对其执行一些操作(列出、上传、下载、复制)等)

文件夹路径是用户(一个用户,又名我)输入的字符串。

根据 Google Drive API 的规定,大多数操作都需要文件/文件夹 ID,因此给定用户的文件路径,我需要找出文件/文件夹 ID。我想要的是一种查找文件/文件夹 ID 的有效方法。注意:在 Google 云端硬盘中,每个文件都有 1 个 ID(字符串)和 1 个标题(例如:'folder3'、'folder1')。 ID 是唯一的。每个文件还包含其 parent ID 的列表。

由于调用 Google Drive API 需要花费大量时间,因此我试图限制 API 调用的次数。

现在,在接受用户输入之前,(1) 我调用 service.files().list(),它返回我的 Google Drive 中所有文件的列表。 (2) 循环遍历列表构造3个字典:FileName-FileID,FileID-FileName,FileID-Parents。

给定用户输入:'MyDrive/Folder1/Folder2',我可以:(1) 查找'Folder2'的ID,然后是它的parents'ID。(2) 查找'Folder1'的ID,然后是它的parents'ID。检查“Folder1”的 ID 是否在“Folder2”的 ParentsID 中。(3) 查找“MyDrive”的 ID。检查 MyDrive 的 ID 是否在“Folder1”的 ID 中。

检查后,我可以确定“Folder2”的 ID 就是我要查找的 ID。

我的问题:1, 你能建议一个更好的方法来找到我的 ID 吗?

2,现在,我想我可能会相信用户的输入,只查找 Folder2 的 ID。如果 Folder2 有 1 个以上的父级,那么我将执行上述过程(遍历路径)。如果 Folder2 有 1 个父级,我将停止检查。这是对用户的过度信任吗?

我是编程新手,你能帮帮我吗?感谢您的宝贵时间和帮助!

最佳答案

这是一个很好的起点:

path = 'sample_folder'
folder_query = "title = '%s' and mimeType = '%s'" % (path,
"application/vnd.google-apps.folder")
folder_list = drive_service.files().list(q=folder_query).execute()
folder_id = folder_list['items'][0]['id']
#(note: this just returns the first search result)

如果路径中有多个文件夹,则需要拆分路径并遍历(例如,获取 Folder1 的 folder_id,然后使用此 id 获取 Folder2 的 folder_id,等等)

关于python - 在给定文件路径的情况下在 Google 云端硬盘中查找文件 ID(例如 : "MyDrive/Folder1/Folder2"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34645653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com