使用Python写CSV时如何将多段落内容写入单个单元格
Python写入CSV时避免多段落文本换行拆分的解决方法
核心说明
你提供的原始代码逻辑基本正确,Python标准库的csv模块默认就会对包含换行符、逗号、引号的字段自动用双引号包裹,写入阶段本身不会把单个字段拆成多行。大部分时候出现拆分问题是工具识别或者参数配置疏漏导致的,按以下方案优化即可。
优化后的写入代码
from csv import writer, QUOTE_MINIMAL # 编码改用utf-8-sig,兼容Windows系统下Excel的编码识别 with open('test.csv', 'w', encoding='utf-8-sig', newline='') as file: # 显式指定引用规则,默认QUOTE_MINIMAL仅对需要转义的字段加引号,也可改为QUOTE_ALL给所有字段加引号更稳妥 thewriter = writer(file, quoting=QUOTE_MINIMAL) header = ['标题', '描述'] thewriter.writerow(header) title = '这是我的标题' description = '这是我的长描述,一共三段。\r\n这是第二段\r\n这是第三段' info = [title, description] thewriter.writerow(info)
常见问题处理
- 用Excel打开还是换行拆分:不要直接双击打开CSV文件,打开Excel后依次点击「数据」-「获取数据」-「自文件」-「从文本/CSV」,导入时编码选择UTF-8,分隔符选择逗号,就能正确识别带换行的单字段。
- 不需要保留文本换行格式:可直接替换掉所有换行符,代码如下:
# 将所有换行替换为空格,彻底避免换行拆分问题 description = description.replace('\r\n', ' ').replace('\n', ' ') - 文本内自带双引号:无需手动处理,
csv.writer会自动对双引号做转义,不会破坏字段结构。
内容的提问来源于stack exchange,提问作者Schalk Joubert
相关产品推荐
相关产品推荐

