Python: How to take a screenshot using pyautogui

Published on Aug. 22, 2023, 12:12 p.m.

To capture screenshots using Python, you can use the PIL (Python Imaging Library) module. The PIL module can be used to take screenshots of the current screen, a specific window, or a particular region. Here is an example of how to capture a screenshot of the entire screen:

import PIL
import PIL.ImageGrab
# capture the entire screen
img = PIL.ImageGrab.grab()
# save the image
img.save('screenshot.png')

Alternatively, you can use the PyAutoGUI module to capture a screenshot of the current screen.

PyAutoGUI is a cross-platform, automation module that works on Py 2 & 3. You can control the mouse and keyboard. You can also perform basic image recognition to automate tasks on a computer.
PyAutoGUI can take screenshots, save them to files. These features are provided by the PyScreeze module.

The Pillow module supports the functionality. OS X uses the screencapture command. Linux uses the scrot command. It can be installed by running the following command:sudo apt-get install scrot

To install PyAutoGUI, install the pyautogui package from PyPI by running pip install pyautogui (on macOS and Linux).

How to take a screenshot in Pyautogui?

You may use the following template to take a screenshot. Calling screenshot() will return an Image object . Passing a string of a filename will save the screenshot to a file.

import pyautogui
myScreenshot = pyautogui.screenshot()
myScreenshot.save(r'Path to save screenshot\file name.png')

Step 1: Install package

pip install pyautogui

Step 2: Capture the path to save the screenshot

Next, capture the full path where the screenshot will be saved.

Step 3: Take the screenshot

import pyautogui

myScreenshot = pyautogui.screenshot()
myScreenshot.save(r'Path to save screenshot\file name.png')

Screenshot will saved at your specified location.