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

如何使用Python将PrettyTable输出正确转换为CSV文件

问题根因

当前代码生成非标准CSV的核心原因有两点:

  • 调用data.get_string()获取的是PrettyTable专为终端打印设计的带边框排版字符串,本身就不是CSV结构化格式,写入文件后自然和终端打印效果完全一致
  • 代码存在语法问题:文件打开模式w未加字符串引号,且with上下文管理器会自动完成文件关闭操作,不需要手动调用f.close
修复方案

PrettyTable内置了get_csv_string()方法,可以直接输出符合RFC标准的CSV格式字符串,直接写入文件即可得到规范的CSV文件,适配AWS Lambda的/tmp可写目录要求。

修正后代码

import os
import json
from prettytable import PrettyTable

data = PrettyTable(["Col1", "Col2", "Col3"])

data.add_row(["test1", "test2", "test3"])
data.add_row(["test4", "test5", "test6"])
data.add_row(["test7", "test8", "test9"])
print(data)
# 获取标准CSV格式内容
csv_content = data.get_csv_string()
# 修正文件打开模式的语法问题,移除冗余的手动关闭文件逻辑
with open('/tmp/test.csv', 'w') as f:
    f.write(csv_content)

可选配置

如果需要自定义CSV格式,可以在get_csv_string()中传入对应参数:

  • 自定义分隔符:传入delimiter参数,比如delimiter=';'使用分号作为字段分隔符
  • 关闭表头输出:传入header=False即可不写入表头行
  • 自定义字段引用规则:传入quoting参数配置csv模块对应的引用规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 17:42:25