如何使用python脚本在谷歌驱动器中创建和显示文件夹?

时间:2021-03-25 09:37:32

标签: python python-3.x google-drive-api

此代码显示 idfolder_name,但未在 Google Drive 中显示 folder_name。我的目的是在谷歌驱动器中创建和显示 folder_name。怎么做?

import httplib2
from googleapiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

scope = 'https://www.googleapis.com/auth/drive'

credentials = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
http = httplib2.Http()

drive_service = build('drive', 'v3', http=credentials.authorize(http))

def createFolder(name):
    file_metadata = {
        'name': name,
        'mimeType': 'application/vnd.google-apps.folder'
    }
    file = drive_service.files().create(body=file_metadata,
                                        fields='id').execute()
    print('Folder ID: %s' % file.get('id'))

createFolder('folder_name')

1 个答案:

答案 0 :(得分:2)

在您的脚本中,文件夹由服务帐户创建。我认为这就是你的问题的原因。服务帐户的 Google Drive 与您的 Google Drive 不同。这样,服务帐户创建的文件夹就无法使用浏览器在您的 Google 云端硬盘中看到。当你想在浏览器中看到服务帐号创建的文件夹时,下面的流程如何?

  1. 在您帐户的 Google 云端硬盘中创建新文件夹。
    • 请在您的 Google 云端硬盘中创建新文件夹。在这种情况下,您可以使用浏览器创建它。
  2. 与服务帐户的电子邮件共享创建的新文件夹。
    • 这样,服务帐户就可以访问您在 Google 云端硬盘中创建的文件夹。
    • 可以在 credentials.json 的文件中确认电子邮件地址。
  3. 使用带有脚本的服务帐户为共享文件夹创建一个文件夹。

通过这个流程,我认为您的目标可以实现。为此,请按如下方式修改您的脚本。

来自:

file_metadata = {
    'name': name,
    'mimeType': 'application/vnd.google-apps.folder'
}

致:

file_metadata = {
    'name': name,
    'mimeType': 'application/vnd.google-apps.folder',
    'parents': ['### folder ID ###']
}
  • 请将 ### folder ID ### 替换为您在 Google 云端硬盘中创建的文件夹 ID。
  • 通过上述修改,可以使用浏览器在 Google Drive 中看到脚本创建的文件夹。

参考: