Python实现向记事本文件追加内容不覆盖的方法(学校作业场景)
解决Python写入记事本覆盖原有内容的问题
嘿,我太懂你这个困扰了——做登录系统的时候,每次存新用户信息,之前的记录就没了,只能留最后一个,这肯定超闹心!
其实问题出在文件打开的模式上:你大概率用的是默认的"w"(写入)模式,这个模式会直接清空目标文件的所有内容,再写入新数据。要保留原有内容并添加新信息,你需要改用追加模式,也就是把打开模式改成"a"或者"a+"。
举个具体的例子:
错误的写法(会覆盖内容)
# 假设你之前是这么写的 username = input("请输入用户名:") password = input("请输入密码:") # 用"w"模式打开,会清空文件 with open("user_records.txt", "w") as file: file.write(f"{username},{password}\n")
正确的写法(追加内容)
username = input("请输入用户名:") password = input("请输入密码:") # 改用"a"模式,新内容会加到文件末尾 with open("user_records.txt", "a") as file: file.write(f"{username},{password}\n")
简单解释一下这两个模式:
"a":追加模式,如果文件不存在会自动创建;如果文件已存在,新写入的内容会直接追加到文件最后,完全不会改动原有内容。"a+":在追加的基础上还支持读取文件内容,如果你之后需要读取已存的用户信息来做登录验证,这个模式会更方便。
另外记得每次写入时加上\n换行符,这样每个用户的信息会单独占一行,后续读取和处理数据的时候会轻松很多~
很高兴你的问题已经解决啦!要是之后在登录系统开发里还有其他小问题,随时都能交流~
内容的提问来源于stack exchange,提问作者ItsFyn
相关产品推荐
相关产品推荐

