プログラミング
記事内に商品プロモーションを含む場合があります

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

Aru

Pythonの出力結果をクリップボードを経由して他のアプリケーションにペーストしたいがあったので、Pythonでクリップボードへの書き込み(copy)・読み出し(paste)を行う方法について調べてまとめました。本記事では、pyperclipを使用してクリップボードにアクセスする方法について解説します。

はじめに

プログラムで処理した結果をクリップボードに格納したいというニーズがあったので、Pythonでクリップボードにコピーする方法を調べてみました。

今回やりたかったのは、Webから取り出した情報を抜き出して整形し、クリップボードに貼り付けるという処理です(貼り付けたテキストをChatGPTなどGUIに入力させるために必要となりました)

この記事では、Pythonを使ってクリップボードの入出力を行う方法を調査した結果について説明します。

pyperclipとは?

pyperclip は、Pythonからクリップボードにアクセスするためのライブラリです。クロスプラットフォーム対応で、Windows, macOS, Linux で動作します。

Linuxの場合はxclipまたはxselコマンド、およびgtkまたはPyQt4をインストールしておく必要があります

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 を使ってクリップボードの入出力を行う方法を解説しました。デコレータを利用することで、より効率的にプログラムの結果を共有できるようになります。自動化スクリプトやデータ処理など、様々な場面で活用してみてください。

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
ある/Aru
ある/Aru
IT&機械学習エンジニア/ファイナンシャルプランナー(CFP®)
専門分野は並列処理・画像処理・機械学習・ディープラーニング。プログラミング言語はC, C++, Go, Pythonを中心として色々利用。現在は、Kaggle, 競プロなどをしながら悠々自適に活動中
記事URLをコピーしました