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

求助:如何将ADLS容器文件夹内文件名合并为单个目标文件名

ADLS文件前缀提取与内容合并实现方案

前提准备

  • 安装Azure Data Lake Storage客户端库:pip install azure-storage-file-datalake
  • 确保拥有ADLS容器的访问权限(账户密钥或SAS令牌)

代码实现

from azure.storage.filedatalake import DataLakeServiceClient
import pandas as pd

# 配置ADLS连接信息
account_name = "你的ADLS账户名"
account_key = "你的ADLS账户密钥"
container_name = "目标容器名"
source_folder_path = "源文件夹路径"
target_folder_path = "目标文件夹路径"

# 初始化DataLake服务客户端
service_client = DataLakeServiceClient(account_url=f"https://{account_name}.dfs.core.windows.net", credential=account_key)
file_system_client = service_client.get_file_system_client(file_system=container_name)

# 获取源文件夹下的所有csv文件
source_directory_client = file_system_client.get_directory_client(source_folder_path)
file_list = [file.name for file in source_directory_client.list_files_and_directories() if file.name.endswith(".csv")]

# 提取文件前缀并生成目标文件名
# 若文件名含多个点,改用rsplit(".", 1)[0]确保只分割最后一个点
file_prefixes = [file.split(".")[0] for file in file_list]
target_file_name = "_".join(file_prefixes) + ".csv"

# 合并所有csv文件内容
combined_df = pd.DataFrame()
for file_name in file_list:
    file_client = source_directory_client.get_file_client(file_name)
    download_stream = file_client.download_file()
    # 若源文件为其他编码,添加encoding参数(如encoding='gbk')
    df = pd.read_csv(download_stream)
    combined_df = pd.concat([combined_df, df], ignore_index=True)

# 将合并后的DataFrame写入目标路径
target_directory_client = file_system_client.get_directory_client(target_folder_path)
target_file_client = target_directory_client.create_file(target_file_name)
csv_data = combined_df.to_csv(index=False).encode('utf-8')
target_file_client.upload_data(csv_data, overwrite=True)

print(f"合并完成,目标文件已保存至:{target_folder_path}/{target_file_name}")

关键说明

  • 前缀提取逻辑:默认用split(".")[0]分割文件名,适用于无多余点的文件名;若文件名含多个点,替换为rsplit(".", 1)[0]仅分割最后一个点。
  • 内容合并:通过Pandas的concat合并数据,ignore_index=True重置索引避免重复;若源文件列结构不一致,可添加join='outer'或join='inner'参数控制合并规则。
  • 权限适配:若使用SAS令牌,将credential参数替换为SAS令牌字符串即可。

常见问题排查

  • 无法列出文件:检查容器名、文件夹路径是否正确,以及账户是否拥有Storage Blob Data Contributor权限。
  • 合并数据异常:确认源文件的列名、数据类型是否兼容,必要时提前统一列结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:15:57