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

如何将Python运行结果输出为CSV文件?(与本地实现效果一致)

将Python运行结果输出为CSV文件的实现方案

要把原本通过print输出的内容保存为CSV文件,最稳妥的方式是用Python内置的csv模块,它能自动处理CSV格式的细节(比如字段含逗号、引号的情况),同时保证输出格式和你本地打印的效果一致。

修改后的代码示例

import csv

def data():
    # 打开CSV文件,指定写入模式、编码和换行符
    with open('output.csv', 'w', newline='', encoding='utf-8') as csv_file:
        # 创建CSV写入对象,设置分隔符为", "(和你的示例输出格式匹配)
        writer = csv.writer(csv_file, delimiter=', ')
        
        for result_by_time in results:
            for group in result_by_time['Groups']:
                amount = group['Metrics']['UnblendedCost']['Amount']
                resource_type = 'Amazon Relational Database Service'
                
                # 整理当前行的所有字段
                row_content = [
                    result_by_time['TimePeriod']['Start'],
                    ', '.join(group['Keys']).replace("example$", "").replace("Name$", ""),
                    amount,
                    resource_type
                ]
                
                # 写入一行数据到CSV文件
                writer.writerow(row_content)

关键说明

  • 用with语句管理文件,自动处理文件的打开和关闭,避免资源泄漏。
  • newline=''参数可防止Windows系统下写入CSV时出现多余空行。
  • delimiter=', '确保字段之间用逗号加空格分隔,和你提供的示例输出格式完全一致。
  • 把原本print的各个字段整理成列表,通过writerow()写入,替代手动拼接字符串的方式,更可靠。

手动写入方案(仅适用于简单场景)

如果不想用csv模块,也可以直接打开文件写入,但要注意字段不能包含逗号、引号等特殊字符:

def data():
    with open('output.csv', 'w', encoding='utf-8') as f:
        for result_by_time in results:
            for group in result_by_time['Groups']:
                amount = group['Metrics']['UnblendedCost']['Amount']
                resource_type = 'Amazon Relational Database Service'
                
                line = f"{result_by_time['TimePeriod']['Start']}, {', '.join(group['Keys']).replace('example$', '').replace('Name$', '')}, {amount}, {resource_type}\n"
                f.write(line)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:25:06