Python中使用w模式写文件后a模式无法追加内容如何解决
Python文本文件追加写入失败问题修复方案
问题根因
open()函数使用w(写入)模式打开已存在的文件时,会直接清空该文件的全部原有内容。你每次运行完整代码时,第一步执行open("test.txt", "w")就会把之前追加的所有Hello内容全部清除,再重新写入Good Morning和一行Hello,因此无论运行多少次都只会保留两行内容。
修复方案
场景1:要求test.txt必须始终保留首行Good Morning,每次运行仅追加Hello
仅在文件不存在的时候执行首行写入逻辑,文件已存在时直接走追加流程即可,推荐搭配with上下文管理器使用,无需手动调用close()处理文件关闭,更安全:
import os file_path = "test.txt" # 仅文件不存在时写入首行内容 if not os.path.exists(file_path): with open(file_path, "w", encoding="utf-8") as hand1: hand1.write("Good Morning") # 每次运行统一追加一行Hello with open(file_path, "a", encoding="utf-8") as hand2: hand2.write("\nHello")
场景2:不需要固定保留首行Good Morning
直接移除代码中最开始的w模式打开文件写入Good Morning的逻辑即可,和你之前测试有效的操作一致。
内容的提问来源于stack exchange,提问作者Darren LK
相关产品推荐
相关产品推荐

