Python实现每行末尾添加换行符问题求助
问题分析与解决方案
你的代码核心问题
- 多余的
self参数:你定义的是普通函数,不是类方法,不需要self参数,这会导致函数无法正常调用。 - 无效的文件路径:
DNS+'DNS_Entries_Copy.txt'会生成类似DNS_Entries.csvDNS_Entries_Copy.txt的错误文件名,根本没正确写入目标文件。 - 文件对象误用:第二段代码循环里用
f.write(line+'\n'),但f是已关闭的输入文件对象,且应该用output.write操作输出文件。 - 换行符处理混乱:
readlines()读取的行大多自带换行符,直接加\n会导致只有第一行(可能无原有换行)出现预期效果,其他行因原有换行+新增换行,看起来和没加一样。
修复后的代码
source = 'DNS_Entries.csv' target = 'DNS_Entries_Copy.txt' def process_dns_entries(input_file, output_file): # 读取原文件,处理每一行:先去掉原有换行,再添加两个换行(内容+空行) with open(input_file, 'r') as in_f: processed_lines = [line.rstrip('\n') + '\n\n' for line in in_f] # 将处理后的内容写入目标文件 with open(output_file, 'w') as out_f: out_f.writelines(processed_lines) # 执行处理函数 process_dns_entries(source, target)
代码说明
rstrip('\n'):仅去掉每行末尾的换行符,保留行内空白字符,避免破坏原有内容格式。+\n\n:给每行内容添加两个换行符,实现“每行后加一个空行”的效果。- 直接读取原文件处理后写入目标文件,无需先用
shutil.copy复制,减少冗余操作。
内容的提问来源于stack exchange,提问作者Lambo_Italia
相关产品推荐
相关产品推荐

