我正在制作一个程序,它将用户的行为记录在用户友好的日志文件中,该文件存储为.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文件,您会发现有时它可以按需要工作,而有时则不工作。有谁能告诉我如何查找到底,或者是否有更好的解决方案来帮助我?这是一个自我分配的挑战,所以我不喜欢赠品,只是暗示。
到
seek
的参数不正确,seek
需要两个参数、一个偏移量(多少字节)和描述从何处查找的位置(开始:0,当前:1,结束:2)。所以你需要的是:或:
但可以通过以追加模式打开文件来避免:
只要以正确的模式打开文件。如果要在不删除以前内容的情况下添加到文件,请使用
'a'
(表示“append”),而不是'r+'
,这是一种截断读/写操作。您将不再需要使用seek()
。相关问题 更多 >
编程相关推荐