Python sleep(): Add Delay In A Seconds To Suspend Execution Of A Script

in Categories , , last updated December 9, 2013

I am a new Python user. I would like to delay execution for five seconds in a Python script. How do I add a time delay in Python on Unix/Linux? Is there a sleep command in python like the Unix/Linux sleep utility to suspend execution of a bash script?

You need to import and use a module called time. This module provides various time-related functions for Python users.

Python sleep syntax

The syntax is as follows
import time
time.sleep(1)
time.sleep(N)

The time.sleep() suspend execution of a script for the given number of seconds. The argument may be a floating point number to indicate a more precise sleep time. The actual suspension time may be less than that requested because any caught signal will terminate the sleep() following execution of that signal’s catching routine. Also, the suspension time may be longer than requested by an arbitrary amount because of the scheduling of other activity in the system.

Example: Put delay in a Python script

Create a script called demo-sleep.py:

#!/usr/bin/python
# The following will run infinity times on screen till user hit CTRL+C
# The program will sleep for 1 second before updating date and time again.
 
import time
 
print "*** Hit CTRL+C to stop ***"
 
## Star loop ##
while True:
        ### Show today's date and time ##
	print "Current date & time " + time.strftime("%c")
 
        #### Delay for 1 seconds ####
        time.sleep(1)

Save and close the file. Run it as follows:
$ chmod +x demo-sleep.py
$ ./demo-sleep.py

Sample outputs:

Fig.01: Python sleep() demo program output
Fig.01: Python sleep() demo program output

Where,

  1. Set an infinite loop using while True:
  2. Get the current date and time using strftime() and display on screen.
  3. Finally, add 1 second delay in a script using sleep(1).
  4. Continue this procedure till user interrupts.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Share this on (or read 2 comments/add one below):

2 comment

  1. What if the print statement takes 0.5 second to run; How would you solve to print out time every one second?

    Have a question? Post it on our forum!