Python CSV覆盖

时间:2013-12-21 08:30:12

标签: python csv overwrite

我正在尝试编写此代码,以便一旦结束,之前的答案将被保存,代码可以再次运行,而不会覆盖旧的答案。我将how,why和scale_of_ten变量转换为'with open'部分,并且我已经取得了一些成功,代码能够在文件执行的次数上工作,但每次执行时,旧的答案都会被覆盖。我如何编写代码,以便在获得新答案时保存旧答案?

import csv
import datetime
# imports modules

now = datetime.datetime.now()
# define current time when file is executed

how = str(raw_input("How are you doing?"))
why = str(raw_input("Why do you feel that way?"))
scale_of_ten = int(raw_input("On a scale of 1-10. With 10 being happy and 1 being sad. How happy are you?"))
#creates variables for csv file

x = [now.strftime("%Y-%m-%d %H:%M"),how,why,scale_of_ten]
# creates list for variables to be written in

with open ('happy.csv','wb') as f:
    wtr = csv.writer(f)
    wtr.writerow(x)
    wtr.writerow(x)
    f.close()

1 个答案:

答案 0 :(得分:6)

使用w模式,open会截断文件。使用a(追加)模式。

....

with open ('happy.csv', 'ab') as f:
    #                    ^
    ....

BTW,如果您使用f.close()语句,则不需要with