我正在用python用tkinter编写一个register(例如,一个school one)程序,并且我试图在每个人单击submit时向register添加一个新的人,但是所发生的一切是它正在覆盖以前的名称,这意味着它被保存的文件只有一个名称。你知道吗
有人对如何解决这个问题有什么建议吗?你知道吗
更清楚的是:register\u info和listedes\u info是注册者的名字和最新保存到文件中的人的名字。你知道吗
这是我代码的一部分:
def create_register():
register_info = registername.get()
listees_info = listees.get()
list_of_registers=os.listdir()
if register_info in list_of_registers:
file=open(register_info,"w")
file.close()
Label(create, text = "Register Created", fg = "green" ,font = ("calibri", 8)).pack()
with open(register_info,"a") as file_info:
file_info.write(register_info+"\n")
file_info.write(listees_info+"\n")
file_info.close()
传递给
w
的open
模式(在您的file=open(register_info,"w")
行中)告诉python您要打开文件进行写入。根据设计,这将除去文件中的任何其他内容,并将光标放在开头。听起来像是要打开文件并在末尾附加信息,而不覆盖任何内容。你知道吗为此,您应该使用append的
a
模式。这将打开文件进行写入,并将光标放在文件末尾。你知道吗所以,你需要说
open(register_info, "a")
。你知道吗我还建议切换到上下文管理器,以确保在发生任何意外行为时关闭文件。您可以这样做:
有关文件打开模式的更多信息(摘自我的另一个答案):
您应该修复此部分:
在
w
模式下打开此文件时,实际上是在重置它。你知道吗相关问题 更多 >
编程相关推荐