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

How to create and show a folder in google drive using python script?

此代码显示 folder_nameid,但未显示 google 驱动器中的 folder_name。我的目的是在 google 驱动器中创建并显示 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')

在您的脚本中,该文件夹是由服务帐户创建的。我认为这就是你的问题的原因。服务帐户的 Google 驱动器与您的 Google 驱动器不同。这样,使用浏览器就无法在 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 驱动器中看到。

参考: