文件内容被覆盖

时间:2015-06-30 06:37:51

标签: python file-handling

我有一个功能,可以在文件的内容中添加日期' completed.txt'每次我打电话给它并提供日期。功能如下:

def completed(date):
    try:
        os.chdir(libspath)      
        os.system("touch completed.txt")
        fileobject=open('completed.txt',"r+")   
        fileobject.write(date+' \n')
        fileobject.close()

    except:
        print "record.completed(): Could not write contents to completed.txt"

其中libspath是文本文件的路径。现在,当我打电话给它completed('2000.02.16')时,它会将日期写入completed.txt文件。当我尝试添加另一个日期时,请说completed('2000.03.18')然后它会覆盖之前的日期并且仅覆盖2000.03.18'现在在文本文件中,但我希望文件中的两个日期都可用作记录

2 个答案:

答案 0 :(得分:0)

您必须以追加模式打开文件:

fileobject = open('completed.txt', 'a')

Python Docs for opening file

"在处理文件对象时,最好使用with关键字。这样做的好处是,即使在路上引发异常,文件也会在套件完成后正确关闭。它也比编写等效的try-finally块短得多。"

来自Python docs

with open('completed.txt', 'a') as fileobject:
    fileobject.write(date + ' \n')

答案 1 :(得分:0)

fileobject=open('completed.txt',"a") 

                                 ^^

append模式打开。你应该使用

with open("completed.txt", "a") as myfile:
    myfile.write(date+' \n')