Sunday, December 1, 2013

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

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.

0 comments:

Post a Comment