Pythonでクリップボードを利用してみます。
pyperclipモジュールを使用すると、簡単にクリップボードを利用できます。
pyperclipの利用方法
pyperclipのインストールにはpipを使用します。
1 |
pip install pyperclip |
pyperclipのcopyメソッドとpasteメソッドを利用します。
1 2 3 4 5 6 7 |
import pyperclip # クリップボードに文字を流し込む pyperclip.copy('こんにちは!') # クリップボードの文字を出力する print(pyperclip.paste()) # こんにちは! |
コピーした文章のスペースを自動で削除する
Kindle PC版で文章をコピーしてペーストすると
文章にスペースが入っているので、削除する必要があります。
夏目漱石の「吾輩は猫である」から最初の文をコピーして
メモ帳などに貼り付けると、品詞ごとにスペースが挿入されています。
吾輩 は 猫 で ある。 名前 は まだ 無い。
夏目 漱石. 吾輩は猫である (Kindle の位置No.10-11). . Kindle 版.
テキストエディタで空白を置換して削除できますが、
毎回テキストエディタに貼り付けて削除するのは大変なので
pyperclipでうまく処理できないか、やってみます。
1 2 3 4 5 6 7 |
import pyperclip import time while True: sentence = pyperclip.paste().replace(' ', '') pyperclip.copy(sentence) time.sleep(1) |
上記のスクリプトを動かしつつ、Kindle PCから文章をコピーすると
品詞の間のスペースが削除されます。
吾輩は猫である。名前はまだ無い。
夏目漱石.吾輩は猫である(Kindleの位置No.10-11)..Kindle版.
コピーした内容から郵便番号を取り出す
日本郵便のWebページをクリップボードにコピーしたあとに
郵便番号だけ抽出してみます。
千葉市中央区の郵便番号一覧でテストしてみます。
日本郵便のWebページの郵便番号は「3桁の数値-4桁の数値」と形式が決まってるので
正規表現とpyperclipを組み合わせて、郵便番号だけ抽出します。
1 2 3 4 5 6 7 8 |
import pyperclip import re pattern = '\d{3}-\d{4}' sentence = pyperclip.paste() zip_list = re.findall(pattern, sentence) print(zip_list) |
クリップボードにWebページの情報をコピーしたあとに
コードを動かすと、コピーした情報の中から郵便番号だけを抽出して
リストとして表示します。
1 |
['260-0000', '260-0852', ... , '260-0821'] |
コピーした内容をn文字ごとに分割する
コピーした内容を指定文字数で分割してみます。
正規表現で文章を分割できるので、正規表現とpyperclipを組み合わせます。
文章は夏目漱石の「坊っちゃん」の下記の一文を使用します。
全部で59文字あるので、これをクリップボード経由で10文字ずつに分割してみます。
親譲りの無鉄砲で小供の時から損ばかりしている。小学校に居る時分学校の二階から飛び降りて一週間ほど腰を抜かした事がある。
1 2 3 4 5 6 7 |
import pyperclip import re pattern = '(.{1,10})' sentence = pyperclip.paste() new_line_sentence = re.findall(pattern, sentence) print(new_line_sentence) |
クリップボードに文をコピーして、コードを動かすと
10文字ずつに分割して、リストで出力します。
1 2 |
['親譲りの無鉄砲で小供', 'の時から損ばかりして', 'いる。小学校に居る時', '分学校の二階から飛び', '降りて一週間ほど腰を', '抜かした事がある。'] |
ちょっとしたテキスト処理にpyperclip
大量のテキストファイルやWebページの処理は、クリップボード単体では難しいです。
小さめの処理であればpyperclipを利用して、置換処理や正規表現と組み合わせて
コピーした内容から瞬時に必要な情報を抜きしたり
コピー内容を加工するなどの用途に活用できそうです。
pyperclipドキュメントのリンク
pyperclipの作成者は
退屈なことはPythonにやらせよう ノンプログラマーにもできる自動化処理プログラミングの
著者の方ですね。
コメント