Python中移除指定行间换行符,合并txt文件事实内容求助
解决文本事实多行合并问题
原代码无效的原因
strip("\n")仅能移除字符串首尾的换行符,无法处理内容中间的换行;而且该方法返回新字符串,你没有将结果重新赋值给变量,所以原字符串完全未被修改。- 你的需求是将每个独立事实的多行内容合并为单行,同时保留不同事实之间的换行,因此需要按空行分割不同事实,再逐个处理内部换行。
正确实现代码
with open("facts.txt", 'r', encoding="utf-8") as f: content = f.read() # 按空行分割事实块,过滤空块并清理首尾空白 fact_blocks = [block.strip() for block in content.split('\n\n') if block.strip()] # 合并每个事实块内的行为单行 processed_facts = [' '.join(block.splitlines()) for block in fact_blocks] # 拼接所有事实为最终文本 result = '\n'.join(processed_facts) # 查看结果 print(result) # 写入新文件(可选) with open("processed_facts.txt", 'w', encoding="utf-8") as f: f.write(result)
代码说明
- 读取文件:一次性读取整个文件内容到字符串
content。 - 分割事实块:用
split('\n\n')按空行分割出每个独立的事实,同时过滤掉无内容的空块,并用strip()清理每个块首尾的多余空白。 - 合并单行:对每个事实块,用
splitlines()拆分为行列表,再用' '.join()将行用空格连接,实现多行转单行。 - 生成结果:将所有处理后的单行事实用换行符连接,得到符合要求的格式,可直接打印或写入新文件。
内容的提问来源于stack exchange,提问作者Qasim
相关产品推荐
相关产品推荐

