Python处理TXT表格写入新文件仅保留最后一行问题求助
问题根因
- 写入文件的逻辑放置在for循环内部,且使用了
w覆盖写入模式:每次调用open(new_filepath, "w")都会清空文件已有内容,因此每一轮循环都会擦掉上一轮写入的结果,最终仅保留最后一行的处理数据。 - 次要问题:
writelines传入单个字符串不符合方法设计逻辑,且处理后的行未添加换行符,即便写入成功也会出现所有内容挤在同一行的问题。 - 额外优化点:原文件仅需读取,不需要使用
r+读写模式,用只读模式r更安全,避免误修改原文件。
修复后可直接运行的代码
filepath = 'original_file.txt' new_filepath = 'new_file.txt' # 统一在循环外层打开读写两个文件,仅做一次IO操作 with open(filepath, 'r') as f, open(new_filepath, "w") as n: for line in f: new_line = line.strip() new_line = new_line.replace('_','\t').replace('FileName','OldFile\tNewFile').replace('predOGT (C)','predOGT_(C)').replace('.fasta','').replace('CTOTU-','') print(new_line) # 写入时补充换行符,保证行结构正确 n.write(new_line + '\n')
内容的提问来源于stack exchange,提问作者ZuZu
相关产品推荐
相关产品推荐

