📜  pydrive 将文件上传到文件夹 - Python (1)

📅  最后修改于: 2023-12-03 15:33:49.785000             🧑  作者: Mango

使用 PyDrive 将文件上传到 Google Drive 文件夹

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 文件夹的全部过程。