由于某种原因,此代码的行为就像未追加编辑模式:
def log_time(name, time):
get_log(date.today())
f = open(logFile, 'a')
f.write(name + ' | ' + time + '\n')
f.close()
仅通过查看此功能,这有什么问题吗?我有理由确定其他功能可以正常工作。问题是,当我两次调用此函数时,文件中仅显示一件事。
我知道了哪里出了问题,但我不知道为什么这是错的。创建文件时,我使用了“ w +”模式,当我将其更改为“ a”时,它可以工作。有人可以告诉我为什么吗?
'a'是追加模式。它将始终将您写入的内容放在文件末尾(不会覆盖该文件)。我也建议使用“ with open”块,而不是每次打开文件时都说打开和关闭。
def log_time(name, time):
get_log(date.today())
with open(logFile, 'a') as f:
f.write(name + ' | ' + time + '\n')
它看起来更干净,并且将在阻止后为您关闭文件。有关这些模式的更多信息,请参见https://stackoverflow.com/a/1466036/13078162