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

如何在GCS中创建以文件夹名为键、无后缀文件名列表为值的字典

生成GCS文件夹对应无后缀文件名的字典

前置依赖

先安装GCS Python开发工具包:

pip install google-cloud-storage

实现代码

import os
from google.cloud import storage

def build_gcs_folder_dict(bucket_name, folder_prefixes):
    folders_dict = {}
    client = storage.Client()
    bucket = client.get_bucket(bucket_name)
    
    for prefix in folder_prefixes:
        # 提取最后一级文件夹名作为字典的键
        folder_key = prefix.split('/')[-2]
        file_names = []
        
        # 遍历当前文件夹下的所有存储对象
        for blob in bucket.list_blobs(prefix=prefix):
            # 跳过GCS中的虚拟文件夹标记(以/结尾的空对象)
            if blob.name.endswith('/'):
                continue
            # 提取文件名并去除.csv后缀
            filename = os.path.basename(blob.name)
            if filename.endswith('.csv'):
                file_name_no_ext = os.path.splitext(filename)[0]
                file_names.append(file_name_no_ext)
        
        folders_dict[folder_key] = file_names
    return folders_dict

# 示例调用
if __name__ == "__main__":
    # 替换为你的GCS桶名称
    BUCKET_NAME = "your-bucket-name"
    # 替换为需要处理的GCS文件夹前缀列表(需以/结尾)
    FOLDER_PREFIXES = [
        "temp_folder/stats/data_transfer/",
        "temp_folder/stats/appointments/",
        # 第三个文件夹前缀添加在此处
    ]
    
    folders_dict = build_gcs_folder_dict(BUCKET_NAME, FOLDER_PREFIXES)
    print(folders_dict)

代码说明

  • 客户端初始化:storage.Client()会自动加载本地GCP认证凭据(GCP环境内无需额外配置)。
  • 文件夹键提取:通过拆分文件夹前缀路径,取倒数第二部分作为字典的键,适配示例中data_transfer、appointments的命名需求。
  • 文件过滤与处理:遍历指定前缀下的所有存储对象,跳过虚拟文件夹,仅处理.csv文件,通过os.path.splitext去除文件后缀。
  • 字典构建:将每个文件夹对应的无后缀文件名列表与文件夹键绑定,最终返回符合需求的字典结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:52:34