关于 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")
我有一个关于我编写的一小段代码的快速问题,我 运行 遇到了一个小问题。
我创建了一个程序,我想 运行 整整一个小时,然后自行退出。
前几天我在我的服务器上看到它 运行 大约三个小时后,这似乎不起作用。
我用来检查一小时是否过去的变量是这样声明的:
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")