【发布时间】:2016-04-23 04:55:51
【问题描述】:
我正在制作一个程序,将用户的操作记录在用户友好的日志文件中,该文件存储为 .txt。到目前为止,它只记录了会话的开始和结束,这是完全相同的时间。但是,目前当我运行程序时,它会删除文件的先前内容。我相信这是由于光标正在寻求指向 (0, 0) 的事实。有没有办法到达文件的末尾?代码如下。
import atexit
import datetime
def logSession():
sessionRecord = open(r'C:\Users\Aanand Kainth\Desktop\Python Files\Login Program\SessionRecords.txt', "r+")
sessionRecord.seek(-1,-1)
sessionRecord.write("Session Began: " '{:%Y-%m-%d | %H:%M:%S}'.format(datetime.datetime.now()) + "\n")
def runOnQuit():
sessionRecord = open(r'C:\Users\Aanand Kainth\Desktop\Python Files\Login Program\SessionRecords.txt', "r+")
sessionRecord.seek(-1,-1)
sessionRecord.write("Session Ended: " '{:%Y-%m-%d | %H:%M:%S}'.format(datetime.datetime.now()) + """\n-------------------------------------------------------------------------------------------\n""")
logSession()
atexit.register(runOnQuit)
如果您在计算机上创建必要的文件并运行此 .PY 文件,您会发现有时它可以正常工作,而有时则不能。谁能告诉我如何寻求到最后,或者是否有更好的解决方案来帮助我?这是一个自我分配的挑战,所以我不喜欢赠品,只是提示。
【问题讨论】:
-
您在写入文件后并没有关闭文件,因此如果您在程序仍在运行时查看文件,您可能会看到不完整的数据,因为某些数据可能仍在缓冲区中,并且尚未物理写入磁盘。
标签: python python-3.x logging