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

TXT转CSV:替换|为;并删除空行,现有代码存重复行未删空行求助

问题分析与修复

原代码存在两个核心问题:

  • 无论行是否为空,先执行了f2.write(line.replace('|', ';')),导致空行被写入目标文件;随后又在非空行的判断分支里写入原行,造成同一行重复写入的情况。
  • 空行过滤的逻辑顺序错误,没有先筛选有效行再处理字符替换。

修正后的代码

# 用with语句自动管理文件生命周期,无需手动关闭
with open("txtfile.txt", 'r') as f1, open("csvfile.csv", 'w') as f2:
    for line in f1:
        # 先判断是否为空行(strip后无内容即为空行)
        if line.strip():
            # 仅对非空行执行字符替换并写入
            processed_line = line.replace('|', ';')
            f2.write(processed_line)

代码说明

  • with语句会在代码块结束后自动关闭文件,避免资源泄漏,写法更简洁安全。
  • 先通过line.strip()过滤空行,空行直接跳过不处理。
  • 仅对非空行执行|到;的替换操作,再写入目标文件,彻底解决空行残留和重复写入的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:56:05