Python to Capture Screenshot at Regular Interval of Time with Full Source Code For Beginners

Captures screenshots at regular intervals of time.

Requirements:

  • PyAutoGUI==0.9.50
pip install -r requirements.txt
Code language: CSS (css)

Usage:

python screenshot.py                          # takes screenshot at interval of 1 hour
python screenshot.py -t m -f 5                # takes 5 screenshots in 1 minute 
python screenshot.py -p path_to_directory     # screenshots will be saved to path_to_directoryCode language: PHP (php)

Run the script:

  • Open on device using a python IDE
  • Run the script
python screenshot.pyCode language: CSS (css)

Source Code:

screenshot.py

import os
import argparse
import pyautogui
import time

parser = argparse.ArgumentParser()

parser.add_argument("-p", "--path", help="absolute path to store screenshot.", default=r"./images")
parser.add_argument("-t", "--type", help="h (in hour) or m (in minutes) or s (in seconds)", default='h')
parser.add_argument("-f", "--frequency", help="frequency for taking screenshot per h/m/s.", default=1, type=int)

args = parser.parse_args()


sec = 0.

if args.type == 'h':
    sec = 60 * 60 / args.frequency
elif args.type == 'm':
    sec = 60 / args.frequency

if sec < 1.:
    sec = 1.
    

if os.path.isdir(args.path) != True:
    os.mkdir(args.path)


try:
    while True:
        t = time.localtime()
        current_time = time.strftime("%H_%M_%S", t)
        file = current_time + ".jpg"
        image = pyautogui.screenshot(os.path.join(args.path,file))
        print(f"{file} saved successfully.\n")
        time.sleep(sec)
        
except KeyboardInterrupt:
    print("End of script by user interrupt")
Code language: PHP (php)

Leave a Comment