我对Python还不熟悉。我需要创建一个门锁包含当前日期和时间的文件。另外,我需要每隔x分钟用一个包含当前日期和时间的新文件覆盖这个文件。我把它作为一个伪锁文件来使用,以便在软件运行时测试软件是否崩溃以及崩溃的时间。我的问题是我似乎无法覆盖文件。我只是在创建和/或附加文件时失败。我创建了以下内容作为测试:
from datetime import datetime, timedelta
ending = False
LOCK_FILENAME = "door.lock" # The lock file
LOCK_FILE_UPDATE = True
MINS_LOCK_FILE_UPDATE = 1 # the (x) time in minutes to write to lock file
NEXT_LOCK_FILE_UPDATE = datetime.now()
lock_file = open(LOCK_FILENAME, "w")
now = datetime.now()
NOW_STRING1 = str(now.strftime("%Y-%m-%d_%a_%H:%M"))
lock_file.write(NOW_STRING1)
print "First Now String"
print NOW_STRING1
# ==============================================================================
#Main Loop:
while ending is False:
# ==============================================================================
# Check if it is time to do a LOCK FILE time update
now = datetime.now()
NOW_STRING1 = str(now.strftime("%Y-%m-%d_%a_%H:%M"))
if LOCK_FILE_UPDATE: # if LOCK_FILE_UPDATE is set to True in DM settings
if NEXT_LOCK_FILE_UPDATE <= datetime.now():
lock_file.write(NOW_STRING1)
print NOW_STRING1
NEXT_LOCK_FILE_UPDATE = datetime.now() + timedelta(minutes=MINS_LOCK_FILE_UPDATE)
有人能帮我指出我的错误吗?短暂性脑缺血发作
当我搜索上面的文件时,门锁,它是空的。你知道吗
您需要将缓冲区推送到文件。您可以使用
close()
进行操作,然后重新打开以进行下一次写入。你知道吗如果要记录事件,最好使用logger而不是纯文本文件。你知道吗
来自@MAC的解决方案将工作,除了它将附加,似乎你不想这样做,所以只要用“w”选项再次打开,或者更好,使用“w+”选项,这样它可以被截断(我得到的是你想要做的)和阅读。你知道吗
另外,考虑到在关闭文件之前您的更改不会被写下来(已经说过,请考虑在循环中打开/关闭)。你知道吗
相关问题 更多 >
编程相关推荐