Python处理文本文件时如何去除多余换行符得到预期格式输出
问题解决方法
- 核心问题原因:
- 原代码使用
readlines()读取文件时,会保留每一行末尾自带的换行符\n,同时原文件的空行也会被作为独立元素读取到列表中,最终拼接后就会出现多余空白 - 写文件的逻辑放在了for循环内部,会触发多次重复写入,属于不必要的冗余逻辑
- 原代码使用
修改后可直接运行的代码
s = [] # 推荐用with上下文管理器打开文件,会自动处理文件关闭,避免资源泄露 with open("test.txt", 'r') as f: for line in f: # 去除每行首尾的换行、空格等空白字符 stripped_line = line.strip() # 跳过处理后的空行,不需要加入结果列表 if not stripped_line: continue # 执行替换逻辑 processed_line = stripped_line.replace("a", "not a") s.append(processed_line) # 所有内容处理完成后,统一写入输出文件 with open("output.txt", 'w') as a: # 用单个空格拼接所有处理后的内容 a.write(" ".join(s))
如果你的使用场景需要保留行内的空格,只需要去掉首尾的换行符,可以把strip()替换为strip('\n'),仅移除换行符即可。
内容的提问来源于stack exchange,提问作者testFreak
相关产品推荐
相关产品推荐

