如何将字符串写入文件的下一行?

时间:2015-09-12 00:18:09

标签: python file tkinter file-writing

我正在尝试创建一个Tkinter程序,该行将一行写入文件,然后在标签中显示它。我已经研究了如何在标签中显示文件的一行,但是当我使用书写功能时,它将新行写在旧行的顶部而不是下一行。请告诉我如何写下一行。 到目前为止,这是我的代码:

from Tkinter import *
import sys
f=open("stats")
line1=f.readline()
line2=f.readline()
line3=f.readline()
line4=f.readline()
line5=f.readline()
line6=f.readline()
line7=f.readline()
line8=f.readline()
line9=f.readline()
line10=f.readline()

def write():
      f=open("stats", "w")
      f.write(e1.get())
      f.write(" ")
      f.write(e2.get())
      f.write("\n")
      e1.delete(0, END)
      e2.delete(0, END)

root=Tk()
root.title("Basketball Stats")
l1=Label(text="Player").grid(column=0, row=0)
l2=Label(text="Number").grid(column=0, row=1)
e1=Entry().grid(column=1, row=0)
e2=Entry().grid(column=1, row=1)
b1=Button().grid(column=1, row=3)
b1.config(text="Submit", command=write)
l3=Label(text=line1).grid(column=0, row=4)
l4=Label(text=line2).grid(column=0, row=5)
l5=Label(text=line3).grid(column=0, row=6)
l6=Label(text=line4).grid(column=0, row=7)
l7=Label(text=line5).grid(column=0, row=8)
l8=Label(text=line6).grid(column=0, row=9)
l9=Label(text=line7).grid(column=0, row=10)
l10=Label(text=line8).grid(column=0, row=11)
l11=Label(text=line9).grid(column=0, row=12)
l12=Label(text=line10).grid(column=0, row=13)
root.mainloop()

2 个答案:

答案 0 :(得分:1)

我认为问题是每次写一行都会重新打开文件。 将open命令移动到主程序 - 记得在完成后关闭它。

答案 1 :(得分:0)

更改为

def write():
   f=open("stats", "a")

" W"创建一个删除任何现有文件的新文件

""附加到现有文件,或者如果它不存在则创建它