「コピペしたテキストの改行を消したい」「余計な空白を毎回手動で消すのが面倒……」

そんな小さなストレス、積み重なると結構な時間を奪っていきますよね。エンジニアの私も、昔は「1回数秒だし、手で直せばいいか」と思っていました。でも、エラーの原因になったり、集中力が切れたりするくらいなら、その作業、Pythonに丸投げしちゃいませんか?

今回は、クリップボードの中身を自動で見張って、一瞬で綺麗に加工してくれる魔法のようなスクリプトをご紹介します。プログラミング初心者の方でも、コピペだけで今日から使えます!


今回作るもののイメージ

  1. スクリプトを起動する。
  2. あなたがどこかでテキストを「コピー(Ctrl+C)」する。
  3. Pythonが裏側で、そのテキストを自動加工(例:空白除去など)してクリップボードに戻す。
  4. 「貼り付け(Ctrl+V)」したときには、もう加工済みのテキストになっている!

事前準備:必要な「道具」を揃える

まずは、Pythonでクリップボードを操作するための「pyperclip」というライブラリ(便利な追加機能セットのこと)をインストールします。

パソコンの黒い画面(コマンドプロンプトやターミナル)を開いて、以下のコマンドを打ち込んでエンターキーを押してください。

bash
pip install pyperclip

「Successfully installed…」と出れば準備完了です!


【コピペOK】自動加工スクリプト本体

以下のコードを、clip_fix.py という名前で保存してください。

今回は例として、「コピーした文章の前後にある余計な空白を消し、改行をすべて削除して1行にする」という加工ルールにしています。

“`python
import pyperclip
import time

def process_text(text):
“””
ここでテキストを加工します。
例:前後の空白を消して、改行をなくす
“””
if text is None:
return “”

# 1. 前後の余計な空白や改行をカット
processed = text.strip()

# 2. 文章内の改行を削除(1行にまとめる)
processed = processed.replace('\n', '').replace('\r', '')

return processed

def main():
print(“クリップボード監視中…(終了するには Ctrl+C を押してください)”)

# 最後にコピーした内容を覚えておく変数
last_text = pyperclip.paste()

try:
    while True:
        # 現在のクリップボードの中身を取得
        current_text = pyperclip.paste()

        # 前回の内容と違っていたら(=新しくコピーされたら)加工実行
        if current_text != last_text:
            print("\n新しいテキストを検知しました!")

            # 加工処理を呼び出す
            new_text = process_text(current_text)

            # 加工した結果をクリップボードに書き戻す
            pyperclip.copy(new_text)

            # 次の比較のために保存
            last_text = new_text

            print("--- 加工完了してクリップボードに戻しました ---")
            print(f"加工後: {new_text[:30]}...") # 確認用に冒頭だけ表示

        # パソコンが疲れすぎないように0.5秒おきにチェック
        time.sleep(0.5)

except KeyboardInterrupt:
    print("\n監視を終了します。お疲れ様でした!")

if name == “main“:
main()
“`


使いかたの手順

  1. 保存したファイルがあるフォルダで、python clip_fix.py を実行します。
  2. 「クリップボード監視中…」と表示されたら、WebサイトやPDFから適当な文章をコピーしてみてください。
  3. メモ帳などに貼り付けてみてください。改行が消えて、綺麗に繋がった状態になっていれば成功です!

自分好みにカスタマイズするヒント

「改行を消すだけじゃなくて、もっと別のことがしたい」という場合は、コード内の process_text の部分を少し書き換えるだけでOKです。

1. 全角英数字を半角にしたい場合

英数字の混じったテキストを扱うときに便利です。

“`python

process_textの中身をこれに変えるイメージ

processed = text.translate(str.maketrans(
‘0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz’,
‘0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz’
))
“`

2. 特定の文字を置換したい場合

例えば、コピーした瞬間に「株式会社」を「(株)」に変換するといったことも可能です。

python
processed = text.replace('株式会社', '(株)')


まとめ:小さな自動化が大きな余裕を生む

エンジニアが常に楽をしているのは、こうした「数秒の単純作業」をプログラムに押し付けているからです。

このスクリプトを動かしておけば、PDFから文章をコピーしたときの「変なところで改行が入る問題」ともおさらばできます。最初はコピペで構いません。「あ、自分の代わりにパソコンが動いてくれた!」という感動をぜひ体験してみてください。

もしエラーが出たり、「こんな加工はできないの?」という要望があれば、ぜひコメントで教えてくださいね!

コメント

タイトルとURLをコピーしました