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
相关产品推荐
相关产品推荐

