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

基于Python调用Google APIs创建文件夹及指定文件夹内表格方法咨询

Python调用Google API创建文件夹及指定目录下的Google Sheet

嘿,我来帮你搞定这两个需求!既然你已经会用Python操作Google Sheet写入数据了,那扩展到文件夹创建和指定目录下建Sheet其实非常顺畅,咱们一步步拆解:

一、先确认依赖和认证基础

首先确保你已经安装了必要的库:

pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib

另外,你的认证逻辑(比如加载credentials.json、构建服务对象)应该已经有了,下面的代码会基于你已有的认证基础来写,假设你已经能成功构建Sheets和Drive的服务对象。

二、创建Google Drive文件夹

要创建文件夹,我们需要调用Google Drive API的files.create方法,核心是指定文件夹的MIME类型:

from googleapiclient.discovery import build
from google.oauth2.service_account import Credentials

# 复用你的认证代码(这里以服务账号为例,你可以换成自己的OAuth2认证)
SCOPES = ['https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/spreadsheets']
creds = Credentials.from_service_account_file('credentials.json', scopes=SCOPES)

# 构建Drive服务
drive_service = build('drive', 'v3', credentials=creds)

def create_drive_folder(folder_name):
    """创建Google Drive文件夹并返回文件夹ID"""
    folder_metadata = {
        'name': folder_name,
        'mimeType': 'application/vnd.google-apps.folder'  # 这是文件夹的专属MIME类型
    }
    # 调用Drive API创建文件夹
    folder = drive_service.files().create(body=folder_metadata, fields='id').execute()
    print(f"文件夹创建成功,ID: {folder.get('id')}")
    return folder.get('id')

# 调用示例
target_folder_id = create_drive_folder("我的测试文件夹")

重点说明:

  • mimeType必须设为application/vnd.google-apps.folder,这是Google Drive识别文件夹的关键标识
  • fields='id'指定只返回文件夹ID,减少返回数据量;如果需要更多信息可以改成'id,name'等

三、在指定文件夹内创建Google Sheet

创建Sheet时,我们同样用Drive API的files.create方法,但要加上parents参数指定目标文件夹ID,同时设置Sheet的MIME类型:

def create_sheet_in_folder(sheet_name, folder_id):
    """在指定文件夹内创建Google Sheet并返回Sheet ID"""
    sheet_metadata = {
        'name': sheet_name,
        'mimeType': 'application/vnd.google-apps.spreadsheet',  # Google Sheet的MIME类型
        'parents': [folder_id]  # 指定要放入的文件夹ID
    }
    # 创建Sheet
    sheet = drive_service.files().create(body=sheet_metadata, fields='id').execute()
    sheet_id = sheet.get('id')
    print(f"Sheet创建成功,ID: {sheet_id},已存入文件夹ID: {folder_id}")
    return sheet_id

# 调用示例(用上面创建的文件夹ID)
new_sheet_id = create_sheet_in_folder("测试Sheet", target_folder_id)

后续写入数据(复用你已有的逻辑)

创建好Sheet后,你就可以用之前掌握的Sheets API写入数据了,比如:

# 构建Sheets服务
sheets_service = build('sheets', 'v4', credentials=creds)

# 写入数据示例
values = [
    ['姓名', '年龄'],
    ['张三', 25],
    ['李四', 30]
]
body = {'values': values}
result = sheets_service.spreadsheets().values().update(
    spreadsheetId=new_sheet_id, range='Sheet1!A1',
    valueInputOption='RAW', body=body).execute()
print(f"写入{result.get('updatedCells')}个单元格数据")

注意事项

  • 确保你的服务账号(或OAuth2账号)拥有Google Drive的编辑权限,否则会出现权限不足的错误
  • 如果是共享文件夹,要先把账号添加为文件夹的协作者,不然无法在里面创建文件
  • 文件夹ID可以在Drive网页端的URL里获取,比如https://drive.google.com/drive/folders/XXX中的XXX就是ID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:21:21