YutaKaのPython教室

Python の文法やライブラリ、API、環境構築について画像・動画・ソースコード付きで徹底解説!

pyperclipの使い方:おススメ置換の自動化スクリプト付き!

今回は、pyperclipの使い方を、おススメ実例付きで紹介します!

pyperclipは、簡単に言うと、普段手作業で行っているコピペをpythonスクリプトに組み込んじゃおう!というモジュールです。

非常にシンプルな機能ゆえに、応用しだいでは絶大な業務効率化の効果を発揮します!

pyperclipの作者はあの有名な「退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング」の著者らしいですよ! 

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

  • 作者:Al Sweigart
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2017/06/03
  • メディア: 単行本(ソフトカバー)

Pyperclipの基本操作

非常にシンプルです。

pyperclip基本操作

① クリップボードのテキストを読み込み:pyperclip.paste()

② クリップボードに出力:pyperclip.copy()

まずクリップボードとは?

まずクリップボードについて簡単に説明します。

普段パソコンでよく使うコピペで使用されているものです。

Ctrl+ cでコピー、Ctrl+vでペーストするコピペです。

コピペをもう少しだけ詳しく見ると…

f:id:YutaKa:20200121125825p:plain

① コピー:テキスト等をクリップボードに一時保存

② ペースト:クリップボードの中身を出力

という流れになっています。

この一時保存所がクリップボードです。

pyperclipは、pythonスクリプト内で、このクリップボードにアクセスできると考えるとわかりやすいです。 

f:id:YutaKa:20200121125930p:plain

注意

pyperclipで操作できるのは、文字列だけです!

text = pyperclip.paste()

クリップボードのテキストを読み込んで、textに返す(張り付け)。

例えば、ABCという文字列をコピーしていれば、text = “ABC” となります。

f:id:YutaKa:20200122073812g:plain

pyperclip.copy(text)

text に格納されている文字列をクリップボードに返す。

例えば、text = “XYZ” であれば、クリップボードにXYZがコピーされます。

pyperclip モジュールのインストール(Anaconda)

conda-forgeからインストールします。

anacondaのプロンプトで次のコマンドを打ちます。

conda install pyperclip -c conda-forge

pythonのモジュールはバージョンの互換性を気にする必要があるので、仮想環境を作ってから、インストールすることをおススメします。

実例:pyperclipで文字列の置換を自動化

私の場合は、pyperclipを応用して、文字列の置換作業を自動化しています。

例えば、記事を書くときに装飾のために次のような記述をすることがあります。

<span=”highliht”>強調したい文字列</span>

この<span~>の部分は、手入力では時間もかかるし、入力ミスを招くこともあります。

こういう時こそ、pythonで自動化です!!

pyperclip文字列置換の流れ

① Ctrl + C で文字列をコピー

② text = pyperclip.paste() で読み込み

③ pythonでtext内の特定の文字列を置換

④ pyperclip.copy(text) で出力

ここから私の書いたスクリプトについて紹介します!

① 自分で置換ルールを決める。

次のように辞書型でルールを定めます。

# 置換される/する単語を辞書型で準備
tag_dict = {
    "_h": '<span class="marker">',
    "h_": '</span>',
}

置換前の文字列をキーにして、置換後の文字列を値にするとスクリプトを書くときに楽です。 

② 置換ルールを使ってブログ執筆

例えば、こんなかんじで_h 強調したい文字列 h_ の前後にキーを打ち込んでおきます。

置換ルールの注意!

キーは短くて、わかりやすい文字列に!

① _(アンダーバー)で始める

② キーのアルファベットは一文字にする

※長くて覚えられないキーでは逆効果です…。

③ pyperclipで置換!

最後は執筆後の記事をクリップボードにコピーして、次のコードを実行します。

コードは非常にシンプルです。 

import pyperclip

# 置換される/する単語を辞書型で準備
tag_dict = {
    "_h": '<span class="marker">',
    "h_": '</span>',
}

# クリップボードの文字列を変数’text’に保存
text = str(pyperclip.paste())

# 文字列の置換
for tag in tag_dict.keys():
    text = text.replace(tag, tag_dict[tag])

# 置換後の文字列をクリップボードにコピー
pyperclip.copy(text)

④ 実演gif動画

f:id:YutaKa:20200122074440g:plain

今回は一行の文字列で実施しましたが、100行、200行の文字列を処理することを考えてみてください…しかも置換の種類が何個もあったらと…pyperclipは強力なモジュールですね

まとめ

今回はpyperclipの使い方をおススメの実例付きで紹介しました。

pyperclip基本操作

① クリップボードのテキストを読み込み:pyperclip.paste()

② クリップボードに出力:pyperclip.copy()

シンプルがゆえに応用次第で、非常に強力なツールになります!