見出し画像

キーボードショートカットでPythonコードを実行する(Windows用)

電通デジタルでデータサイエンティストを務める吉田です。
これはDentsu Digital Advent Calendar 2021の15日目の記事です。

予め作成したPythonコードをキーボードショートカットで即時に呼び出す方法をご紹介します。

WindowsPCには数多くのキーボードショートカットが用意されていますが、ソフトウェアのショートカットファイルに対して任意のキーボードショートカットを設定することもできます。

画像2

キーボードショートカットの例

この機能を利用して、Pythonコードを実行するbatファイルを作成しショートカットキーを割り当てることでキーボードから即時に実行できるようにします。頻繁に行うファイルやソフトウェアの操作・設定などをスクリプト化してこれを適用すると作業が非常に楽になります。

実装方法

PC環境: Windows 10 Pro, Python3.7導入済み

実行したい任意の処理をPythonコードで記述し保存します。
ここではpath/to/python_code.pyに保存したとします。

次に、下記のようにPythonコードのファイルパスを指定して実行するように記述したファイルを作成し、.batの拡張子で保存します。

python path/to/python_code.py

さらにこのbatファイルを右クリックして「ショートカットの作成」を押すことでショートカットファイルを作成します。
作成されたショートカットファイルを右クリックして「プロパティ」を開き、「ショートカットキー」欄に任意のショートカットキーを登録します。
ここでのショートカットキーは「Ctrl + Alt + 任意の英数1文字」で登録するのが一般的です。入力欄で直接キーを入力して「適用」します。

画像3

こうすることで、他のソフトウェアを使用中でも、アプリを開いたり画面を切り替えることなく、記述した処理を即時実行することができます。

音楽再生アプリを操作する例

個人的な用例として音楽再生アプリの楽曲をアプリを開かずお気に入り登録する例をご紹介します。

私は少し疲れてきたときやサクサク手を動かして進めるような作業をするときは音楽アプリでプレイリストをシャッフル再生しながら取り組むことがあります。
こうして音楽を再生をしていると、ふと「この曲いいな!」と思うような未知の楽曲に出会うことがしばしばあり、あとでまた聴くことができるようにお気に入り登録するのですが、作業中にアプリを開いて曲名を確かめてお気に入りボタンを押す操作を繰り返すとそこまでの作業が中断されてしまい集中できなくなってしまいます。

そこで、楽曲のお気に入り登録用のキーボードショートカットを作成することを思いつきました。

以下では一例としてSpotifyを使った場合の実装をご紹介します。

Spotify Web APIはSpotify上の楽曲やプレイリストのデータを取得したり、再生/停止やプレイリスト作成などの操作を行うことができます。

利用するにはSpotifyのアカウントを持っていることが前提となります。
必要な認証情報を発行するために、Spotify for DevelopersのDashboardにアクセスしてログインし、必須項目を入力してアプリを作成すると認証に必要な「CLIENT ID」と「CLIENT SECRET」が発行されます。

画像4

また、今回はSpotify Web APIのPython用クライアントライブラリであるspotipyを利用するのでローカルにPythonの実行環境を用意した上でこれをインストールしておきます。

pip install spotipy

下記はPythonコードのサンプルです。username, client_idなどは発行したものに置き換えます。ここでのusernameはプロフィールに自分で登録したユーザー名ではなく、アカウント情報に記載されている長い英数文字列です。
また、cache_pathはアクセストークンを記述しておくためのキャッシュファイルで、これを使うことによってブラウザからのユーザー認証が初回のみで済むようになります。
また、cache_pathはアクセストークンを記述しておくためのキャッシュファイルで、これを使うことによってブラウザからのユーザー認証が初回のみで済むようになります。

# coding: utf-8
import spotipy
import spotipy.util as util

username = '<USER_NAME>'
client_id = '<CLIENT_ID>'
client_secret = '<CLIENT_SECRET>'
redirect_uri = 'http://localhost:8888/callback'
scope = 'user-library-modify user-library-read user-read-currently-playing'
cache_path = '<path/to/.cachefile>'

token = util.prompt_for_user_token(username, scope, client_id, client_secret, redirect_uri, cache_path)
sp = spotipy.Spotify(auth = token)
track_playing = sp.current_user_playing_track()
track_id = track_playing['item']['id']
sp.current_user_saved_tracks_add([track_id])

このPythonコードに対して先に紹介したショートカットキーの割り当てを適用することで、モバイルアプリ・PCを問わずSpotifyで楽曲を再生中であれば、指定したショートカットキーでその楽曲をお気に入り登録することができます。アプリを開くことなく登録完了するので作業を妨げることがありません。

この記事ではPythonコードを実行していますが、環境を用意すればその他のプログラミング言語でもbatファイルを通して処理を呼び出すことができます。

参考ページ

spotipy - Document
spotipy - GitHub


みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!