How to start a function at a given time with Python?

Sometimes, we want to start a function at a given time with Python.

In this article, we’ll look at how to start a function at a given time with Python.

How to start a function at a given time with Python?

To start a function at a given time with Python, we can use the timedelta function to set the delay before running the function.

For instance, we write:

from datetime import datetime, timedelta
import threading


def update():
    print('hello world')


now = datetime.now()
run_at = now + timedelta(seconds=3)
delay = (run_at - now).total_seconds()
threading.Timer(delay, update).start()

to create the update function that we want to run after a 3 second delay.

To do this, we get the current date time with datetime.now.

And then we add the 3 seconds time difference by calling the timedelta function and add the returned time delta object to now.

Next, we calculate the delay with (run_at - now).total_seconds().

Finally, we call the Timer constructor with the delay and the update function to create the thread.

And we call start on the Timer instance to run the function after the specified delay.

Therefore, we should see 'hello world' printed after a 3 seconds delay.

Conclusion

To start a function at a given time with Python, we can use the timedelta function to set the delay before running the function.