【覚書メモ】Pythonでクリップボードからコピー&ペーストする方法

Pythonの出力結果をクリップボードを経由して他のアプリケーションにペーストしたいがあったので、Pythonでクリップボードへの書き込み(copy)・読み出し(paste)を行う方法について調べてまとめました。本記事では、pyperclip
を使用してクリップボードにアクセスする方法について解説します。
はじめに
プログラムで処理した結果をクリップボードに格納したいというニーズがあったので、Pythonでクリップボードにコピーする方法を調べてみました。
今回やりたかったのは、Webから取り出した情報を抜き出して整形し、クリップボードに貼り付けるという処理です(貼り付けたテキストをChatGPTなどGUIに入力させるために必要となりました)
この記事では、Pythonを使ってクリップボードの入出力を行う方法を調査した結果について説明します。
pyperclipとは?
pyperclip
は、Pythonからクリップボードにアクセスするためのライブラリです。クロスプラットフォーム対応で、Windows, macOS, Linux で動作します。
pyperclip
のメリットは、少ないコードでクリップボード操作が実現できることです。
Pyperclipのドキュメントへのリンク: https://pyperclip.readthedocs.io/
pyperclipのインストール
pyperclip
をインストールは、コマンドプロンプトで以下のコマンドを実行してください。
pip install pyperclip
クリップボードへの入出力
以下、クリップボードへの書き込み(コピー)、クリップボードからの読み込み(ペースト)のプログラム例を示します。
クリップボードへのコピー
Pythonを使ってクリップボードにテキストをコピーするにはcopy
関数を利用します。
import pyperclip
my_text = 'テスト文字列'
pyperclip.copy(my_text)
print("クリップボードにコピーしました: " + my_text) # 確認用
上記のコードでは、my_text
に格納された文字列 'テスト文字列'
をクリップボードにコピーしています。
クリップボードからの読み出し
クリップボードからテキストを読み出すには paste()
関数を利用します。
import pyperclip
try:
clipboard_content = pyperclip.paste()
print("クリップボードの内容: " + clipboard_content)
except pyperclip.PyperclipException as e:
print(f"クリップボードへのアクセスに失敗しました: {e}")
上記のコードでは、クリップボードの内容を取得し、コンソールに出力しています。
また、try-except
ブロックで囲むことで、クリップボードへのアクセスエラーを処理しています。
応用例:入力した式を計算して返すプログラム
クリップボードを応用した例として「クリップボードに格納された数式を計算して、結果を返す」プログラムを作成してみました。Pythonの場合eval
関数でテキストで入力された数式を計算することができます。
import pyperclip
try:
clipboard_content = pyperclip.paste()
print("クリップボードの内容: " + clipboard_content)
except pyperclip.PyperclipException as e:
print(f"クリップボードへのアクセスに失敗しました: {e}")
result = eval(clipboard_content)
print(f"計算結果:{clipboard_content}={result}")
try:
pyperclip.copy(str(result))
print("✅計算結果をクリップボードにコピーしました。")
except pyperclip.PyperclipException as e:
print(f"クリップボードへのアクセスに失敗しました: {e}")
上記のプログラムを実行する前に、”1+2+3*2″などの文字列をクリップボードに格納しておけば、実行後に9という数値が戻ります。
クリップボードの内容: 1+2+3*2
計算結果:1+2+3*2=9
✅計算結果をクリップボードにコピーしました。
まとめ
この記事では、Pythonのライブラリ pyperclip
を使ってクリップボードの入出力を行う方法を解説しました。デコレータを利用することで、より効率的にプログラムの結果を共有できるようになります。自動化スクリプトやデータ処理など、様々な場面で活用してみてください。