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

如何用Python将Pandas DataFrame保存到Azure容器指定文件夹?

Azure Blob存储:Python连接并保存DataFrame到指定虚拟文件夹

前置依赖安装

先确保安装所需库:

pip install azure-storage-blob pandas

完整实现代码

from azure.storage.blob import BlobServiceClient
import pandas as pd
import io

# 替换为你的存储账户信息
STORAGE_ACCOUNT_NAME = "your-storage-account-name"
STORAGE_ACCOUNT_KEY = "your-storage-account-key"
CONTAINER_NAME = "your-container-name"
TARGET_FOLDER = "Folder1/"  # 虚拟文件夹需以斜杠结尾
CSV_BLOB_NAME = f"{TARGET_FOLDER}output_data.csv"

# 1. 初始化Blob服务客户端
account_url = f"https://{STORAGE_ACCOUNT_NAME}.blob.core.windows.net"
blob_service_client = BlobServiceClient(account_url, credential=STORAGE_ACCOUNT_KEY)

# 2. 获取目标容器客户端(容器需已存在,若要自动创建可添加判断)
container_client = blob_service_client.get_container_client(CONTAINER_NAME)

# 3. 示例DataFrame(替换为你的实际数据)
df = pd.DataFrame({
    "ID": [1, 2, 3],
    "Name": ["Alice", "Bob", "Charlie"],
    "Value": [10.5, 20.7, 15.3]
})

# 4. 将DataFrame转为CSV字节流(无需本地保存文件)
csv_buffer = io.StringIO()
df.to_csv(csv_buffer, index=False, encoding="utf-8")
csv_buffer.seek(0)
csv_data = csv_buffer.getvalue().encode("utf-8")

# 5. 上传CSV到指定虚拟文件夹
blob_client = container_client.get_blob_client(CSV_BLOB_NAME)
blob_client.upload_blob(csv_data, overwrite=True)

# 可选:验证上传结果
print("已上传的Blob列表:")
for blob in container_client.list_blobs(name_starts_with=TARGET_FOLDER):
    print(f"- {blob.name}")

关键说明

  • 虚拟文件夹机制:Azure Blob存储没有真实的文件夹,Folder1/是Blob路径的前缀,上传带该前缀的Blob后,Azure门户会自动显示为文件夹结构,无需单独创建。若要确保"文件夹"存在,只需上传任意Blob到该前缀下即可。
  • 库版本兼容:代码基于azure-storage-blob v12+(最新稳定版),旧版v2.x的API已废弃,这可能是你旧代码无效的原因。
  • 权限验证:确保使用的存储账户密钥拥有Blob数据 Contributor或更高权限,否则会出现上传失败。
  • 覆盖控制:overwrite=True会覆盖同名Blob,若需避免覆盖可改为overwrite=False,此时若Blob已存在会抛出异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:12:22