How can I repeat something in x minutes in Python?

I have a program (temptrack) where I need to download weather data every x minutes in x hours. I figured out how to download every x minutes using time.sleep(x*60), but I don’t know how to repeat this process for a certain number of hours.

UPDATE: Thanks to everyone who posted the solution. I noted an example using "datetime.datetime.now () + datetime.timedelta (hours = x)" as the best answer, because I could better understand it, and it seems to work very well for my purpose.

+5
source share
5 answers

, , , , . :

finish_time = datetime.datetime.now() + datetime.timedelta(hours=6)
while datetime.datetime.now() < finish_time:
    do_something()
    sleep_for_a_bit()
+4

sched Python.

+4

.

.

+3
0

, , , . , 5 2 , 24 , :

for i in range(24):
    download()
    sleep(5*60)

, , :

from __future__ import division
from math import ceil
betweenDLs = 5 # minutes
totalTime = 2*60 # minutes
for i in range(int(ceil(totalTime/betweenDLs))):
    download()
    sleep(betweenDLs*60)
-2

All Articles