使用Python移除文件中的字符串拼接符并合并字符串
处理末尾带'+'的文本行合并问题
核心思路
逐行读取时不能孤立处理单一行,需维护一个缓冲区暂存待拼接的内容片段:遇到以'+'结尾的行,就移除'+'后加入缓冲区;遇到正常行时,将缓冲区内容与当前行合并后输出,再清空缓冲区。
Python实现代码示例
with open('input.txt', 'r', encoding='utf-8') as infile, open('output.txt', 'w', encoding='utf-8') as outfile: buffer = [] for line in infile: # 先移除换行符,避免干扰末尾判断 cleaned_line = line.rstrip('\n') if cleaned_line.endswith('+'): # 去掉末尾的'+',加入缓冲区(可按需决定是否移除行尾空格) buffer.append(cleaned_line[:-1].rstrip()) else: if buffer: # 合并缓冲区与当前行后写入 buffer.append(cleaned_line) merged = ' '.join(buffer) # 若原文本无空格需求,直接用''.join(buffer) outfile.write(merged + '\n') buffer = [] else: # 无待拼接内容,直接写入当前行 outfile.write(line) # 处理文件末尾可能剩余的待拼接内容 if buffer: outfile.write(' '.join(buffer) + '\n')
关键注意点
- 必须用缓冲区暂存:单独判断每行末尾无法完成跨行合并,因为拼接行属于上一行的延续内容。
- 先移除换行符:行末的
\n会导致endswith('+')判断失效,需先清理换行符再做判断。 - 灵活调整拼接方式:用
' '.join还是直接拼接,取决于原文本中拼接片段之间是否需要保留空格,可根据实际情况修改。 - 处理末尾残留:文件最后几行可能都是带'+'的拼接行,循环结束后要检查缓冲区并输出剩余内容。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

