我正在尝试创建一个小脚本来使用文本文件中的时间,然后将30分钟添加到该数字,然后与“当前时间”进行比较,看看是否已超过30分钟......
import os
from time import time, sleep, strftime
with open('timecheck.txt') as timecheck:
last_timecheck = timecheck.read().strip()
print last_timecheck
currenttime = strftime('%H:%M:%S')
if last_timecheck + 30 >= currenttime:
if os.path.exists("../test.csv"):
with open("timecheck.txt", 'wb') as timecheck:
timecheck.write("1")
else:
currenttime = strftime('%H:%M:%S')
with open("timecheck.txt", 'wb') as timecheck:
timecheck.write(currenttime)
任何帮助都会受到赞赏,我无法弄清楚如何正确地做到这一点。
答案 0 :(得分:5)
不是为当前时间创建字符串,而是使用datetime.datetime.strftime()
解析从文件中读取的字符串,例如:
import datetime
last_timecheck = datetime.datetime.strptime(last_timecheck, '%H:%M:%S')
last_timecheck = datetime.datetime.combine(datetime.date.today(), last_timecheck.time())
if last_timecheck + datetime.timedelta(minutes=30) <= datetime.datetime.now():
检查超过30分钟是否已经过去。
您可能应在您写入文件的信息中包含 date 。如果你不这样做,那么23:30:45
将永远不会在30分钟前出现&#39;在当天。
如果您不需要时间戳是人类可读的,那么只需写入自UNIX时代以来的秒数:
timecheck.write(str(time.time()))
这是一个浮点值,您可以通过以下方式再次阅读:
last_timecheck = float(timecheck.read())
由于它是数字表示,因此您可以测试是否已经过了30分钟:
if last_timecheck + 30 <= time.time():