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