クリップボードのテキスト内の改行を削除するツール(Python + PyInstaller)

最近のGoogle翻訳の精度は本当に凄くて、英語の文献をしょっちゅうコピペしながら読んでいます。 ただ、Google Chrome拡張機能から翻訳する場合は大丈夫なのですが、Adobeのリーダーなどからコピーした文を貼り付けると改行コードが残り、 そのままペーストすると翻訳の邪魔になってしまいます。

というわけで、ワンアクションでクリップボード内のテキストに含まれる改行を削除するツールを作りました。

環境、使用したもの

  • Windows 10
  • Python 3.5.3
  • pyperclip 1.6.2
  • PyInstaller 3.3.1
  • ランチャー、またはショートカット変更ツール

実装

やることは非常に簡単です。

① クリップボード内のテキストを取得後、改行を削除したのちにクリップボードに返すコードを用意
② ①を.exeファイルに変換、ランチャーに登録

まず必要なパッケージであるpyperclip, PyInstallerをインストールします。両方ともpipで入れられます。

pip install pyperclip pyinstaller

①のコードはpyperclipを使って数行で書けます。

import pyperclip

a = pyperclip.paste()
b = a.split()
c = ''

for text in b:
    c = c + text + ' '

pyperclip.copy(c)

pyperclip.paste()クリップボードからテキストを取得、pyperclip.copy()クリップボードにコピーします。 なおsplit関数で引数を指定しないと空白も削除されてしまい、それだと英文の場合困るので単語ごとに空白を入れています。

書いたコードをsample.pyとして保存した場合、コマンドラインから下記を実行することで .exeファイルが作れます。

pyinstaller -F -w sample.py

引数はそれぞれ、生成するファイルを一つにまとめること、実行したときにウィンドウを生成しないことを意味しています。

生成したらあとは実行するだけなのですが、ランチャーに登録しておくと便利です。 私はOrchisというランチャーを使っており、Shiftキー2回連打でマウスの横にアプリが表示されるので、 実際に使うときは「コピー→ランチャー起動→クリックして改行を削除」という流れになります。

f:id:Kanchi0914:20180610050529p:plain

また、キーボードショートカットから特定のアプリを起動できるソフトを使えば、 好きなショートカットキーを押すだけで同じことができます。 そのようなソフトにはX Button Makerなどがあります。

余談

似たようなことができるツールがないか探したところ、普通にありました。 www.vector.co.jp