【Python】スクリーンショットを撮る方法

Python

この記事では、Pythonを使ってパソコン画面のスクリーンショットを撮る方法について説明します。

Pythonには、便利なライブラリがたくさんあり、スクリーンショットも簡単に撮ることができます。「プログラムで自動的に画面を保存したい」「作業ログを残したい」という方におすすめの技術です。

必要なライブラリのインストール

まず、スクリーンショットを撮るために便利なライブラリを2つ紹介します。

pyautogui

マウス操作やキーボード操作もできる多機能ライブラリですが、スクリーンショット機能もついています。以下のコマンドを実行し、ライブラリをインストールします。

pip install pyautogui

Pillow(画像処理ライブラリ)

画像を保存するために必要です。pyautoguiと一緒に使うことが多いです。

pip install pillow

画面全体のスクリーンショットを撮る

import pyautogui

# スクリーンショットを撮る
screenshot = pyautogui.screenshot()

# 保存する
screenshot.save("screenshot.png")

このコードを実行すると、プログラムが画面全体を撮影してカレントディレクトリに「screenshot.png」という名前で保存します。

特定の範囲のスクリーンショットを撮る

画面の一部だけを保存します。

import pyautogui

# 左上座標 (x=100, y=100)、幅300、高さ400の領域をキャプチャ
screenshot = pyautogui.screenshot(region=(100, 100, 300, 400))
screenshot.save("partial_screenshot.png")

region引数に、(x座標, y座標, 幅, 高さ) の順で指定します。

ファイル名に日時を含める方法

毎回違うファイル名で保存したいときは、ファイル名に日付や時刻を追加すると便利です。

import pyautogui
from datetime import datetime

# 現在の日時を取得してファイル名に使う
now = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"screenshot_{now}.png"

screenshot = pyautogui.screenshot()
screenshot.save(filename)

これで例えば「screenshot_20250520_140512.png」のように保存されます。

定期的に自動でスクリーンショットを撮る(タイマー付き)

一定時間ごとにスクリーンショットを自動保存したい場合は、timeモジュールを使います。

import pyautogui
import time
from datetime import datetime

# 5回スクリーンショットを撮る
for i in range(5):
now = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"screenshot_{now}.png"
pyautogui.screenshot().save(filename)
print(f"{filename} を保存しました")
time.sleep(10) # 10秒待つ

上記コードでは、10秒ごとに5回スクリーンショットを撮って保存します。

まとめ

この記事では、Pythonを使ってパソコン画面のスクリーンショットを撮る方法について説明しました。用途に合わせて、自動スクリーンショットのプログラムを活用してみてください!

タイトルとURLをコピーしました