如何用Python在CSV同一单元格内写入多行内容?
在CSV同一单元格内写入多行内容的Python实现方案
要实现CSV单元格内的多行内容,核心是确保包含换行符的字段被CSV规范正确引用,这样电子表格工具(如Excel)才能识别为单个单元格内的换行。你的代码逻辑基本正确,只需补充必要配置即可生效:
修正后的代码
import csv # 使用with语句自动管理文件,避免手动关闭的疏漏 with open("prueba.csv", "a", newline="", encoding="utf-8") as f: header = ["Prueba", "Prueba2"] # 显式设置quoting参数,确保含特殊字符(换行、逗号等)的字段被正确引用 writer = csv.writer(f, quoting=csv.QUOTE_ALL) writer.writerow(header) prueba1 = "123" prueba2 = "123\n124" # 直接用\n拼接多行内容 writer.writerow([prueba1, prueba2])
关键说明
- CSV规范要求:当字段包含换行符、逗号或引号时,必须用双引号包裹该字段,否则读取工具会将换行识别为新行。
csv.writer的quoting=csv.QUOTE_ALL会强制为所有字段添加引号,确保特殊字符被正确处理(默认的csv.QUOTE_MINIMAL也会自动处理含特殊字符的字段,显式设置更稳妥)。 - 文件编码:添加
encoding="utf-8"避免中文或特殊字符出现乱码问题。 - with语句:替代手动
open/close,更安全且代码更简洁。
写入后的CSV用Excel打开时,第二个单元格会显示为两行内容;用文本编辑器查看时,该字段会被双引号包裹(如"123\n124"),这是符合CSV规范的正常现象。
内容的提问来源于stack exchange,提问作者unai abrisketa sanchez
相关产品推荐
相关产品推荐

