关于 Python3 timedate 模块的问题

Questions about Python3 timedate module

我有一个关于我编写的一小段代码的快速问题,我 运行 遇到了一个小问题。

我创建了一个程序,我想 运行 整整一个小时,然后自行退出。

前几天我在我的服务器上看到它 运行 大约三个小时后,这似乎不起作用。

我用来检查一小时是否过去的变量是这样声明的:

timeLeft = datetime.timedelta(hours=1)

我的支票使用 if/else 这样的声明:

if timeLeft > datetime.timedelta(hours=1.01):
   import myModule
   return myModule.exitMain()
else:
     return myProgMain

datetime.timedelta() 函数是否可以有效检查一个小时是否已过? 或者我应该使用 time.time(3600) ?

你可以这样循环。

import time

seconds_to_run = 3600

start = time.time()
end = start + seconds_to_run

while time.time() < end:
    # call you code here
    print("hello")
    
print("Done")

您将在您提到的持续时间内和停止后重复调用您的代码。

如果要根据timedelta进行检查,

import datetime

start = datetime.datetime.now()

while True:
    time_now = datetime.datetime.now()
    elapsed = time_now - start
    
    if elapsed > datetime.timedelta(hours=1):
        print("Completed 1 hr")
        break
    
    # call your code here
    print("hi")