この記事では、Pythonプログラムからシステムのクリップボード(コピー&ペースト機能)を操作するためのサードパーティ製モジュール、pyperclip
について解説します。
pyperclipモジュールのインストール
pyperclip
はPythonの標準ライブラリではないため、使用する前にインストールが必要です。ターミナルまたはコマンドプロンプトで以下のコマンドを実行してください。
pip install pyperclip
copy()
関数:クリップボードへのコピー
pyperclip.copy()
関数は、引数として渡された文字列をクリップボードにコピーします。
import pyperclip
# クリップボードに文字列をコピーする
pyperclip.copy("This text is now on the clipboard.")
このコードを実行すると、指定した文字列がクリップボードに格納され、他のアプリケーションに貼り付けられる状態になります。
paste()
関数:クリップボードからの貼り付け
pyperclip.paste()
関数は、現在クリップボードにあるテキストを文字列として返します。
import pyperclip
# 最初に何かテキストをコピーしておく
pyperclip.copy("Sample text for pasting.")
# クリップボードからテキストを取得して変数に保存
text_from_clipboard = pyperclip.paste()
print(text_from_clipboard) # 出力: Sample text for pasting.
実用例:テキストの整形と再コピー
pyperclip
は、テキストベースの定型作業を自動化する際に非常に役立ちます。例えば、クリップボードにある複数行のテキストの各行の先頭に、記号を追加して整形し、再びクリップボードに戻すスクリプトを作成できます。
import pyperclip
# 1. クリップボードからテキストを取得
original_text = pyperclip.paste()
# 2. テキストを改行で分割し、各行の先頭に '*' を追加
lines = original_text.split('\n')
formatted_lines = []
for line in lines:
# 行が空でなければ処理する
if line.strip() != "":
formatted_lines.append("* " + line)
# 3. 新しいテキストを改行で結合し、クリップボードにコピー
new_text = '\n'.join(formatted_lines)
pyperclip.copy(new_text)
print("クリップボードのテキストを整形し、再コピーしました。")
このスクリプトを実行する前に、複数行のテキストをコピーしておくと、実行後には各行に*
が付与されたテキストがクリップボードに格納されます。
まとめ
pyperclip
モジュールは、Pythonでクリップボード操作を自動化するためのシンプルで強力なツールです。copy()
関数でテキストをクリップボードに送り、paste()
関数でテキストを取得します。手作業で行っているテキストのコピー&ペースト作業を、スクリプトで効率化することができます。