gpt4 book ai didi

python - 如何使用 Python 3.5 .seek() .txt 文件的结尾

转载 作者:行者123 更新时间:2023-12-03 15:08:15 24 4
gpt4 key购买 nike

我正在制作一个程序,用于记录用户在用户友好的日志文件中所做的事情,该文件存储为 .txt。到目前为止,它只记录 session 的开始和结束,这是完全相同的时间。但是,目前当我运行该程序时,它会删除文件的先前内容。我相信这是由于光标试图指向 (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需要 2 个参数,一个偏移量(多少字节)和描述从哪里寻找(开始:0,当前:1,结束:2)的时间。所以你需要的是:

import io
sessionRecord.seek(0, io.SEEK_END)

或者:
sessionRecord.seek(0, 2)   # Py2

但是您可以通过以追加模式打开文件来避免这样做:
with open('<filename>', 'a'):
sessionRecord.write(...)

关于python - 如何使用 Python 3.5 .seek() .txt 文件的结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34847636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com