Python文件 - 每次打开时写入新行

时间:2013-12-22 16:02:38

标签: python file tkinter

我想要做的是每次通过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()

2 个答案:

答案 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()接受的一些模式和参数是不同的。