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

如何用Python移除100MB pipe分隔符文件第二列的多余分隔符

Python 处理管道分隔符异常行的实现方案
  • 全程采用逐行读写的方式,不需要将整个100MB文件加载到内存,内存占用稳定在KB级别,完全适配需求
  • 逻辑判断轻量化,处理速度快,普通机械硬盘也能在几秒内完成处理

核心逻辑说明

正常行按|分割后长度为5,异常行分割后长度为6,仅对长度为6的行做合并处理:将第2、3个分割结果合并为新的第二列,其余列保持原有顺序即可消除第二列多余的|符号。

完整实现代码

# 替换为你自己的输入、输出文件路径
input_path = "原始文件路径.txt"
output_path = "修正后文件路径.txt"

with open(input_path, 'r', encoding='utf-8') as in_f, open(output_path, 'w', encoding='utf-8') as out_f:
    for line in in_f:
        # 仅移除行尾换行符,保留行内原始空格格式
        stripped_line = line.rstrip('\n')
        parts = stripped_line.split('|')
        # 正常行直接原样写回
        if len(parts) == 5:
            out_f.write(line)
        # 仅处理多1个分隔符的异常行
        elif len(parts) == 6:
            corrected_parts = [
                parts[0],
                f"{parts[1]}{parts[2]}",
                parts[3],
                parts[4],
                parts[5]
            ]
            out_f.write('|'.join(corrected_parts) + '\n')
        # 其他异常长度行默认原样写回,避免数据丢失,可自行补充处理逻辑
        else:
            out_f.write(line)

注意事项

  • 处理完成后可先抽查异常行的修正结果,确认符合预期后再替换原文件
  • 如果文件编码不是UTF-8,将代码中的encoding参数修改为对应编码(比如GBK)即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:48:04