Google Cloud Function中使用Python修改Google Storage存储桶内CSV文件
实现代码
首先导入所需依赖模块:
import csv import io from datetime import date from google.cloud import storage # storage客户端建议放在函数外初始化,避免重复实例化增加冷启动开销 storage_client = storage.Client()
完整函数实现如下:
def addDataToCsv(bucket, fileName, path=''): today = str(date.today()) bucket = storage_client.get_bucket(bucket) blob = bucket.blob(fileName) # 下载blob为字节后解码为UTF-8文本 raw_content = blob.download_as_string().decode('utf-8') # 完全在内存中处理CSV内容,无本地磁盘写入 input_io = io.StringIO(raw_content) output_io = io.StringIO() reader = csv.reader(input_io) writer = csv.writer(output_io) # 处理表头:新增date字段 headers = next(reader) headers.append('date') writer.writerow(headers) # 处理每行数据:末尾追加当日日期 for row in reader: row.append(today) writer.writerow(row) # 上传处理后的CSV到存储桶 modified_content = output_io.getvalue() blobNew = bucket.blob(f'{path}/mod.csv') blobNew.upload_from_string(modified_content, content_type='text/csv')
注意事项
- 全流程内存操作,完全适配Cloud Function无本地持久化存储的运行环境
- 使用标准库
csv处理内容,可自动兼容带逗号、引号等特殊字符的CSV格式,避免手动拼接字符串引发的格式错误 - 若不需要
path参数拼接路径,可直接写目标blob的完整路径即可
内容的提问来源于stack exchange,提问作者Nikita P
相关产品推荐
相关产品推荐

