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

如何删除大型CSV文件中多余的\n同时保留\r\n换行符不变

问题根因

你原有代码失效的核心原因是Python文本模式默认开启了通用换行符转换:读取文件时会自动将Windows风格的\r\n换行符转换为单个\n,因此正则表达式(?<!\r)\n会匹配到所有换行符,全部替换为空格后自然丢失了所有换行。

修复方案

打开文件时指定newline=''参数关闭通用换行转换,让\r\n原样保留在读取的内容中,同时正则使用raw字符串避免转义问题。

修正后可直接运行的代码

import re

filetoread = "你的源文件路径.csv"
filetowrite = "修复后的文件路径.csv"

# 读写都指定newline=''避免换行符自动转换,按需调整encoding参数匹配你的文件编码
with open(filetoread, "r", encoding="utf-8", newline='') as inf:
    with open(filetowrite, "w", encoding="utf-8", newline='') as fixed:
        for line in inf:
            # 匹配所有前面不带\r的单独\n,替换为空格(不需要空格可改为"")
            line = re.sub(r"(?<!\r)\n", " ", line)
            fixed.write(line)
补充说明
  • 该方案逐行读取文件,内存占用极低,完全支持你19万行的大文件处理
  • 如果替换后CSV字段出现异常,可以把替换目标从空格改为空字符串,避免多余空格影响字段分隔
  • 处理完成后可以用head -n 10 修复后的文件路径.csv(Linux)或者Get-Content 修复后的文件路径.csv -Head 10(Windows PowerShell)快速验证换行符是否正常保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:39:04