📅  最后修改于: 2023-12-03 15:33:49.785000             🧑  作者: Mango
PyDrive 是一个 Python 封装的 Google Drive API。它使得将文件上传到 Google Drive 非常简单。本文将演示如何使用 PyDrive 将文件上传至 Google Drive 中的一个文件夹。
首先,需要安装 PyDrive:
!pip install PyDrive
然后,需要使用 PyDrive.auth.GoogleAuth()
进行认证,该方法会自动弹出 Google 登录页面。然后,请授权您的应用程序访问您的 Google Drive。
from pydrive.auth import GoogleAuth
gauth = GoogleAuth()
gauth.LocalWebserverAuth() # 授权并手动验证
要将文件上传到 Google Drive 文件夹,首先需要创建一个文件夹。以下代码演示如何创建一个名为 my_folder
的文件夹:
from pydrive.drive import GoogleDrive
from pydrive.files import Folder
# 获取 Google Drive 的根文件夹
drive = GoogleDrive(gauth)
root_folder = drive.ListFile({'q': "'root' in parents and trashed = false"}).GetList()[0]
# 创建一个名为 my_folder 的文件夹
folder_metadata = {'title': 'my_folder', 'mimeType': 'application/vnd.google-apps.folder', 'parents': [{'id': root_folder['id'] }]}
folder = drive.CreateFile(folder_metadata)
folder.Upload()
现在我们将演示如何将文件上传到文件夹。以下代码演示了如何将本地文件 example.jpg
上传到名为 my_folder
的文件夹中。
from pydrive.drive import GoogleDrive
from pydrive.files import FileNotUploadedError
# 获取 Google Drive 的根文件夹
drive = GoogleDrive(gauth)
root_folder = drive.ListFile({'q': "'root' in parents and trashed = false"}).GetList()[0]
# 获取文件夹 my_folder
folder = drive.ListFile({'q': "'{}' in parents and trashed = false".format(root_folder['id'])}).GetList()[0]
# 上传本地文件 example.jpg 至 my_folder 中
file_metadata = {'title': 'example.jpg', 'parents': [{'id': folder['id'] }]}
file = drive.CreateFile(file_metadata)
file.SetContentFile('example.jpg')
file.Upload()
# 打印上传成功信息
print('Successfully uploaded file to folder: {}'.format(folder['title']))
完整的代码如下所示(假设文件已准备好):
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from pydrive.files import Folder
# 认证
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
# 获取 Google Drive 的根文件夹
drive = GoogleDrive(gauth)
root_folder = drive.ListFile({'q': "'root' in parents and trashed = false"}).GetList()[0]
# 创建一个名为 my_folder 的文件夹
folder_metadata = {'title': 'my_folder', 'mimeType': 'application/vnd.google-apps.folder', 'parents': [{'id': root_folder['id'] }]}
folder = drive.CreateFile(folder_metadata)
folder.Upload()
# 获取文件夹 my_folder
folder = drive.ListFile({'q': "'{}' in parents and trashed = false".format(root_folder['id'])}).GetList()[0]
# 上传本地文件 example.jpg 至 my_folder 中
file_metadata = {'title': 'example.jpg', 'parents': [{'id': folder['id'] }]}
file = drive.CreateFile(file_metadata)
file.SetContentFile('example.jpg')
file.Upload()
# 打印上传成功信息
print('Successfully uploaded file to folder: {}'.format(folder['title']))
以上就是使用 PyDrive 将文件上传到 Google Drive 文件夹的全部过程。