You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PyDrive一步完成Google Drive文件夹创建与文件上传

PyDrive创建文件夹+自动上传文件整合方案

核心逻辑非常直接:调用Upload()完成文件夹创建后,PyDrive返回的文件夹对象会自带云端生成的唯一ID,直接提取这个ID作为后续上传的父目录参数即可,无需手动硬编码文件夹ID。

完整代码

使用前请确保已经安装PyDrive依赖,完整单流程执行代码如下:

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

# 初始化Drive授权
gauth = GoogleAuth()
drive = GoogleDrive(gauth)

# 创建云端目标文件夹
folder_name = 'My_new_folder'
target_folder = drive.CreateFile({
    'title': folder_name,
    'mimeType': 'application/vnd.google-apps.folder'
})
target_folder.Upload()
# 提取新建文件夹的云端唯一ID
target_folder_id = target_folder['id']

# 遍历本地目录上传文件到新建文件夹
local_dir = "C:/Users/Singh/screenshots/"
for file_name in os.listdir(local_dir):
    local_path = os.path.join(local_dir, file_name)
    # 仅上传普通文件,跳过子目录避免IO报错
    if os.path.isfile(local_path):
        upload_obj = drive.CreateFile({
            'parents': [{'id': target_folder_id}],
            'title': file_name
        })
        upload_obj.SetContentFile(local_path)
        upload_obj.Upload()

关键说明

  • 原独立运行的上传代码需要手动复制提前创建好的文件夹固定ID,整合后不需要任何手动查询ID的操作,创建文件夹步骤完成后会自动传递ID给上传逻辑,实现全流程单步执行
  • 新增了文件类型判断,原代码直接遍历目录下所有条目,遇到子文件夹时调用SetContentFile会抛出错误,加判断后可以规避这个问题
  • 对重名变量做了区分,避免原两段代码都用folder做变量名带来的逻辑覆盖问题

内容的提问来源于stack exchange,提问作者Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 22:33:22