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

如何在Python中仅通过名称获取Google Drive空文件夹的ID?

通过文件夹名称获取Google Drive文件夹ID的Python实现

要实现仅通过名称查找Google Drive文件夹ID的功能,你需要先完成Google Drive API的基础配置,以下是完整的实现方案:

前置步骤

  1. 安装必要的Python库:
pip install google-api-python-client oauth2client
  1. 前往Google云平台创建项目,启用Google Drive API,生成OAuth2客户端凭据(JSON格式),将文件保存为credentials.json,放在代码同目录下。

完整函数实现

from googleapiclient.discovery import build
from oauth2client.file import Storage
from oauth2client.client import OAuth2WebServerFlow
from oauth2client.tools import run_flow

# 从credentials.json中提取你的凭据信息
CLIENT_ID = '你的客户端ID'
CLIENT_SECRET = '你的客户端密钥'
OAUTH_SCOPE = 'https://www.googleapis.com/auth/drive.readonly'
REDIRECT_URI = 'urn:ietf:wg:oauth:2.0:oob'

def get_drive_service():
    # 处理授权流程,生成Drive服务实例
    storage = Storage('drive-auth.json')
    credentials = storage.get()

    if not credentials or credentials.invalid:
        flow = OAuth2WebServerFlow(CLIENT_ID, CLIENT_SECRET, OAUTH_SCOPE, REDIRECT_URI)
        credentials = run_flow(flow, storage)
    
    return build('drive', 'v3', credentials=credentials)

def findFolderId(folderName):
    drive_service = get_drive_service()
    
    # 构造查询规则:匹配名称、文件夹类型、未被删除的项
    query = f"name='{folderName}' and mimeType='application/vnd.google-apps.folder' and trashed=false"
    
    # 发起API查询请求
    results = drive_service.files().list(
        q=query,
        spaces='drive',
        fields='files(id, name)'
    ).execute()
    
    items = results.get('files', [])
    
    if not items:
        return None  # 无匹配文件夹
    elif len(items) > 1:
        # 存在多个同名文件夹时默认返回第一个,可按需添加筛选逻辑(如按创建时间)
        return items[0]['id']
    else:
        return items[0]['id']

# 测试调用示例
if __name__ == '__main__':
    target_id = findFolderId('demo')
    if target_id:
        print(f"匹配的文件夹ID: {target_id}")
    else:
        print("未找到指定名称的文件夹")

关键说明

  • 查询规则调整:可修改query参数中的条件,比如去掉trashed=false会包含已删除文件夹;若要查找共享文件夹,可添加权限相关筛选条件。
  • 多结果处理:如果Drive中有多个同名文件夹,可扩展代码通过父文件夹ID、创建时间等维度进一步筛选。
  • 权限范围:使用drive.readonly仅获取只读权限,避免请求不必要的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:40:59