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

Azure Functions Python Blob Trigger中InputStream转可操作对象问题咨询

字节流转可操作对象实现方案

核心逻辑

func.InputStream的read()方法返回标准二进制字节流,通过io.BytesIO封装为类文件对象后,可直接对接Python生态所有支持字节输入的工具库,无需落地为本地临时文件。


场景1:转换为Pandas DataFrame

前置依赖

需在项目requirements.txt中添加对应依赖:

pandas>=2.0.0
# 若需要处理Excel文件添加以下依赖
openpyxl>=3.1.0
# 若需要处理parquet文件添加以下依赖
pyarrow>=12.0.0

代码实现(替换原函数中对应占位部分即可)

import io

### Manipulate with Pandas ###
# 读取字节流封装为类文件对象
blob_byte_stream = io.BytesIO(myblob.read())

# 根据Blob文件格式选择对应pandas读取方法:
# 1. 源文件为CSV格式
df = pd.read_csv(blob_byte_stream)
# 2. 源文件为Excel格式
# df = pd.read_excel(blob_byte_stream)
# 3. 源文件为parquet格式
# df = pd.read_parquet(blob_byte_stream)

# 此处可对df做任意数据处理
# 例如新增列、过滤、聚合等操作
df['processed_flag'] = 1

### Output ###
# 处理后的DataFrame转为csv字符串写入输出Blob
output = df.to_csv(index=False, encoding='utf-8')
outputBlob.set(output)

场景2:转换为图片可操作对象(以JPG/PNG等格式为例)

前置依赖

需在项目requirements.txt中添加依赖:

Pillow>=9.5.0

代码实现

import io
from PIL import Image

# 读取字节流封装为类文件对象
blob_byte_stream = io.BytesIO(myblob.read())
# 转为PIL Image可操作对象
img = Image.open(blob_byte_stream)

# 此处可对图片做任意处理
# 例如转灰度、调整尺寸、提取像素矩阵等
img_gray = img.convert('L')

注意事项

  • 若处理超大体积Blob(超过100MB),建议开启流式读取避免内存溢出,可通过分段读取myblob.read(size)的方式处理
  • 不同文件格式的处理逻辑仅需替换对应工具库的读取接口,所有支持类文件对象输入的库都可以直接适配该方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:54:03