我想要做的是每次通过tkinter按钮调用AppViewer_SAVE函数,以便打开文件并写入数据。我的问题是每次调用和写入函数时,它都不会写入新行,它只会覆盖第一行的数据,继承代码:
def Appviewer_SAVE(self):
target = open("saved", "w+")
target.write("%s\t" % App_InfoTrans0())
target.write("%s\t" % App_InfoTrans1())
target.write("%s\n" % App_InfoTransfer_Gender) #\n doesn't make a difference here
target.close()
答案 0 :(得分:3)
将您的代码更改为:
def Appviewer_SAVE(self):
target = open("saved", "a")
target.write("%s\t" % App_InfoTrans0())
target.write("%s\t" % App_InfoTrans1())
target.write("%s\n" % App_InfoTransfer_Gender) #\n doesn't make a difference here
target.close()
'w +'模式:
打开文件进行书写和阅读。覆盖现有的 文件是否存在。如果该文件不存在,则创建一个新文件 阅读和写作的文件。
'a'模式:
打开要追加的文件。文件指针位于。的末尾 文件是否存在。也就是说,文件处于追加模式。如果 该文件不存在,它会创建一个用于写入的新文件。
您可以在此link
上查看所有文件模式答案 1 :(得分:1)
您想要使用
以附加模式打开文件open(filename, 'a')
虽然追加模式有时会在行为上有一些特定于平台的差异,但另一个选择是在写入模式下打开并手动寻找到最后
f = open(filename, 'w')
f.seek(0, os.SEEK_END)
将来,请查看open的Python文档。它明确指出那里 “(注意'w +'截断文件)”。如果您正在使用Python 3,请确保明确引用您正在使用的Python版本的文档,因为open()接受的一些模式和参数是不同的。