みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
非エンジニア&Windowsユーザーの初心者向けにPythonでお仕事に役立つツールを作る方法をお届けしています。
Pythonらしい機能を見つけましたので、ぜひお伝えしたいと思っておりました。その機能とは、クリップボードです。
Pythonではpyperclipモジュールを使えば、クリップボードの操作も簡単にできるというのです。
その機能を使って、便利ツールを何回のシリーズで作っていければな~とおもっております。
今回は、Pythonでクリップボードを操作するための最初の一歩、クリップボードからデータを取得する方法をお伝えします。
では、行ってみましょう!
クリップボードのデータを操作してリスト化するツールを作る
さて、本シリーズで作るツールですが、その機能をお伝えします。
テキストファイルでも、Webページでも、エクセルファイルでもよいのですが、以下のように、とあるテキストによるリストを範囲選択して Ctrl + C でクリップボードにコピーします。
その状態でPythonのプログラムを実行。そして、Ctrl + V でペーストをするとあら不思議。以下のように、各行の先頭にハイフンと半角スぺ―スが挿入されたものが貼り付けられるというものです。
つまり、Markdownでいう「リスト」になっているわけですね。
コピーしたものをリスト化したいときは結構あるのですが、ハイフンと半角スペースを全ての行の先頭に手作業で追加するの…面倒じゃないですか。
それをPythonがクリップボードのデータをちょいっといじって代わりにやってくるれるというものです。
便利でそうですよね!
クリップボードのデータを取得する
pyperclipモジュール準備
Pythonでクリップボードを操作するには、pyperclipモジュールを使うことができます。
pyperclipはサードパーティ製ですので、pipを使って事前にインストールをする必要があります。
以下の記事でその方法をお伝えしていますので、先に済ませておきましょう。
その上で、実行するPythonプログラムの先頭でインポートをする必要がありますね。
以下のように記述します。
これでpyperclipモジュールを使う準備が整いました。
pyperclip.paste関数でコピーしたデータを取得
pyperclipモジュールでは
- クリップボードのデータを取得する
- クリップボードにデータを上書きする
という操作を行うことができます。
今回は、まずクリップボードのデータを取得して、その内容を確認してみましょう。
クリップボードのデータを取得するにはpyperclip.paste関数を使います。
ではシンプルに、クリップボードのデータを取得してprintしてみましょう。
import pyperclip
print(pyperclip.paste())
対象のテキスト範囲をコピーしてから、このプログラムを実行してみます。
はい、ちゃんとクリップボードの内容がShellウィンドウに出力されました。バッチリ取得できていますね。
クリップボードから取得したデータは長い文字列
ちょっとprint関数の出力だとわかりづらいのですが、クリップボードから取得したデータは、実は以下のような長い文字列になっています。
Pythonで標準ライブラリのモジュールをインポートして使ってみよう\r\nPythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラム\r\nPythonプログラミングの基本中の基本!forループによる繰り返しの作り方\r\nPythonでデータをまとめて取り扱う基本中の基本!リストの使い方とforループ\r\nPythonで指定したフォルダが存在しているかどうかを調べるos.path.existsの使い方\r\nPythonで条件分岐をする基本中の基本!if~else文の作り方\r\nPythonでテキストファイルを開いてデータを読み込む基本中の基本\r\nPythonで文字列を区切り文字や改行で分割してリスト化するsplitメソッドの使い方\r\nPythonで文字列のスペース・タブ・改行を取り除くstripメソッドの使い方\r\nPythonで開いたファイルのクローズを忘れやすい人のためのwith文の使い方\r\nPythonでcsvファイルからデータを読み込む最初の一歩\r\n
改行位置には文字コード「\r\n」が挿入されていますね。
「\n」は改行コード、別名ラインフィード(LF)といいます。「\r」はキャリッジリターン(CR)というものです。
UnixやMacの環境では改行のさいにはラインフィードのみなのですが、Windowsの環境では改行の際にはキャリッジリターンとラインフィードが両方挿入されるのが一般的です。
この「\r\n」を上手に扱うのが次の一歩になってくるということになりそうですね。
まとめ
以上、Pythonでクリップボードを操作する第一歩、コピーしたデータを取得する方法についてお伝えしました。
pyperclipモジュールのpaste関数で一発です。簡単です。
次回は、取得した長~い文字列をリスト化して処理をしていきたいと思います。
どうぞお楽しみに!