【问题标题】:Questions about Python3 timedate module关于 Python3 时间日期模块的问题
【发布时间】:2021-02-19 12:01:56
【问题描述】:

我有一个关于我编写的一些小sn-p代码的快速问题,我遇到了一个小问题。

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

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

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

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) ?

【问题讨论】:

  • 你必须使用while not if

标签: python-3.x timedelta


【解决方案1】:

你可以这样循环。

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")

【讨论】:

    猜你喜欢
    • 2020-05-09
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    相关资源
    最近更新 更多