4

我正在使用 PyDrive QuickStart 脚本列出我的 Google Drive 文件。

代码:

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

gauth = GoogleAuth()
gauth.LocalWebserverAuth()

drive = GoogleDrive(gauth)

file_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList()

print(file_list)

我可以正常列出我的文件,但我需要从我已经通过身份验证的 GoogleDrive 帐户的另一个公共驱动器 URL(不是我的个人身份验证驱动器)列出和管理文件,就像我使用请求库一样。任何想法如何做到这一点?

4

1 回答 1

7
  1. 您需要获取文件夹 ID。您可以在文件夹的 URL 中找到 ID。一个例子是: https://drive.google.com/open?id=0B-schRXnDFZeX0t0RnhQVXXXXXX(URL 后面的部分id=)。

  2. 根据 ID 列出文件夹的内容。给定您替换为的代码file_list = ...

    file_id = '<Your folder id here.>'
    file_list = drive.ListFile({'q': "'%s' in parents and trashed=false" % file_id}).GetList()
    

    如果这不起作用,您可能需要在浏览器中打开共享文件夹时,使用右上角的“添加到云端硬盘”按钮将远程文件夹添加到您的 Google 云端硬盘。

    2.1 在文件夹中创建文件可以这样完成:

    file_object = drive.CreateFile({
                "parents": [{"kind": "drive#fileLink",
                             "id": parent_id}],
                'title': file_name,
                # (Only!) If the new 'file' object is going be a folder:
                'mimeType': "application/vnd.google-apps.folder"
            })
    file_object.Upload()
    

    如果失败,请检查您是否具有对该文件夹的写入权限。

    2.2 可以使用 GitHub 上提供的更新版本来删除/删除文件:pip install instructionsDelete/Trash/UnTrash 文档

最后,有一个上传到文件夹的功能请求,如 2.1 中所述,并列出文件夹的文件,如 2 中所述。 - 如果您发现上述内容不起作用,您可以将其作为问题/功能请求添加到存储库.

于 2016-06-21T05:42:30.300 回答