Pythonでクリップボードを自在に操る!pyperclip入門(コピー&ペースト、監視)


 

この記事では、Pythonライブラリのpyperclipを使って、システムのクリップボードを操作する方法について解説します。テキストのコピー、ペースト、さらにはクリップボードの監視といった機能をPythonスクリプトに組み込むことで、日常の作業を大幅に効率化できます。


 

クリップボードとは?

 

クリップボードは、コンピュータのオペレーティングシステムが提供する一時的なデータ保存領域です。テキストや画像などを「コピー」または「カット」すると、そのデータはクリップボードに保存され、「ペースト」操作で別の場所に貼り付けることができます。これにより、アプリケーション間でのデータ共有が容易になります。

 

なぜクリップボードをPythonで操作するのか?

 

  • 作業の自動化: 定型的なテキストのコピー&ペースト作業を自動化し、時間を節約します。

  • データ連携: 異なるアプリケーション間でデータをPythonスクリプトを介して連携させます。

  • スクレイピング後の処理: ウェブサイトから取得したデータをクリップボードにコピーして、別の場所に貼り付けるなど、後続の処理に活用します。


 

pyperclipとは?

 

pyperclipは、Pythonでクロスプラットフォームのクリップボード操作を可能にするシンプルなライブラリです。Windows、macOS、Linuxといった主要なOSに対応しており、特別な設定なしに手軽にクリップボードを操作できます。

 

pyperclipのインストール方法

 

pyperclipはpipを使って簡単にインストールできます。

Bash
 
pip install pyperclip

 

pyperclipを使ったクリップボード操作の基本

 

pyperclipを使ってクリップボードのテキストをコピーしたり、貼り付けたりする基本的な手順を説明します。

 

テキストをクリップボードにコピーする

 

pyperclip.copy()関数に文字列を渡すだけで、そのテキストがクリップボードにコピーされます。

Python
 
import pyperclip

text_to_copy = "Hello, pyperclip! This text is copied."
pyperclip.copy(text_to_copy)
print(f"'{text_to_copy}' がクリップボードにコピーされました。")

このコードを実行すると、指定した文字列がクリップボードに保存されます。メモ帳やテキストエディタなどでペースト(Ctrl+V または Command+V)してみると、コピーされたテキストが貼り付けられるのを確認できます。

 

クリップボードからテキストをペーストする

 

クリップボードに保存されているテキストを取得するには、pyperclip.paste()関数を使用します。

Python
 
import pyperclip

# クリップボードからテキストを取得
pasted_text = pyperclip.paste()
print(f"クリップボードのテキスト: '{pasted_text}'")

このコードは、現在クリップボードにあるテキストを取得して表示します。


 

クリップボードの監視(発展的な使い方)

 

pyperclip自体には直接的な「監視」機能はありませんが、ループ処理と組み合わせることで、クリップボードの内容が変更されたかどうかを定期的にチェックし、変更があれば特定の処理を実行するといった「監視」のような動作を実現できます。

 

クリップボードの変更を検出する

 

Python
 
import pyperclip
import time

last_clipboard_content = pyperclip.paste()
print("クリップボードの監視を開始します。Ctrl+Cで終了。")

try:
    while True:
        current_clipboard_content = pyperclip.paste()
        if current_clipboard_content != last_clipboard_content:
            print(f"クリップボードの内容が変更されました: '{current_clipboard_content}'")
            last_clipboard_content = current_clipboard_content
        time.sleep(1) # 1秒ごとにチェック
except KeyboardInterrupt:
    print("\n監視を終了します。")

このスクリプトは1秒ごとにクリップボードの内容をチェックし、前回の内容と異なれば、変更があったことを表示します。これにより、ユーザーが何かをコピーするたびに、その内容を検知できます。


 

まとめ

 

pyperclipは、Pythonでクリップボード操作を簡単に行うための非常に便利なライブラリです。テキストのコピー&ペーストだけでなく、少し工夫すればクリップボードの変更を監視するような応用も可能です。ぜひpyperclipを活用して、日常のPC作業をPythonで効率化してみてください!

■プロンプトだけでオリジナルアプリを開発・公開してみた!!

■AI時代の第一歩!「AI駆動開発コース」はじめました!

テックジム東京本校で先行開始。

■テックジム東京本校

「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。

<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。

<月1開催>放送作家による映像ディレクター養成講座

<オンライン無料>ゼロから始めるPython爆速講座