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

Python实现移除单行换行符且保留空行的批量处理方法

实现逻辑

  • 先以空行作为分隔符,把整篇文本拆分为独立的段落
  • 每个段落内部的单行换行全部替换为空格,合并成连续的一行
  • 所有处理后的段落再用空行拼接,就能保留原有的空行结构

改造后完整代码

import os
sourcepath = os.listdir('InputFiles/')
# 统计替换的换行符总数量
total_replaced = 0

for file in sourcepath:
    input_path = 'InputFiles/' + file
    print('Conversion is ongoing for:' + input_path)
    with open(input_path, 'r', encoding='utf-8') as f:
        filedata = f.read()
    
    # 按空行分割段落
    paragraphs = filedata.split('\n\n')
    processed_paras = []
    replace_count = 0
    
    for para in paragraphs:
        # 统计当前段落里需要替换的单换行数量
        replace_count += para.count('\n')
        # 替换段落内所有换行,同时清理行首尾多余空白
        processed_para = ' '.join(line.strip() for line in para.split('\n') if line.strip())
        processed_paras.append(processed_para)
    
    # 用空行拼接回所有段落
    filedata_processed = '\n\n'.join(processed_paras)
    total_replaced += replace_count
    
    destinationpath = 'OutputFile/' + file
    with open(destinationpath, 'w', encoding='utf-8') as f:
        f.write(filedata_processed)
    print(f'当前文件替换了 {replace_count} 个单行换行符')

print(f'所有文件共替换 {total_replaced} 个单行换行符')

适配说明

你原来的全局replace逻辑会匹配所有换行符,所以会把空行的换行也一并删掉。上面的方案先拆分段落,只处理段落内部的换行,空行作为段落分隔符会在最后拼接的时候还原,就实现了保留空行、合并单行换行的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:54:07