在从文本文件读取的时间上加30分钟,并与当前tim进行比较

2024-06-06 18:19:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着做一个小脚本来使用文本文件中的时间,然后在这个数字上加上30分钟,然后与“currenttime”进行比较,看看是否已经过了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)

任何帮助都将不胜感激,我不知道如何正确地做这件事。你知道吗


Tags: importtxtiftimeosaswithopen
1条回答
网友
1楼 · 发布于 2024-06-06 18:19:28

不是为当前时间创建字符串,而是使用^{}解析从文件读取的字符串,例如:

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分钟。你知道吗

可能应该在写入文件的信息中包含日期。如果不这样做,那么23:30:45就永远不会是当天的“30分钟前”。你知道吗

如果不需要时间戳使其可读,只需写入UNIX时代以来的秒数:

timecheck.write(str(time.time()))

这是一个浮点值,您可以使用以下命令再次读取它:

last_timecheck = float(timecheck.read())

由于它是一个数字表示,因此您可以测试30分钟是否已过,并使用:

if last_timecheck + 30 <= time.time():

相关问题 更多 >