この記事では、Pythonのwebbrowser
、sys
、pyperclip
モジュールを組み合わせて、コマンドラインやクリップボードから住所を取得し、自動的にブラウザでGoogleマップを開く便利なスクリプトmap_it.py
を作成する方法を解説します。
1. プロジェクトの概要と必要なモジュール
このプロジェクトの目的は、住所検索の手間を省くことです。通常、住所をコピーし、ブラウザを開き、Googleマップに貼り付けて検索するという手順を、コマンド一つで実行できるようにします。
使用するモジュールは以下の通りです。 webbrowser
: Pythonからウェブブラウザを起動するための標準ライブラリ。 sys
: コマンドライン引数を読み取るための標準ライブラリ。 pyperclip
: クリップボードのコピー&ペーストを行うためのサードパーティ製ライブラリ。(pip install pyperclip
で要インストール)
2. 処理フローの設計
スクリプトは以下のロジックで動作します。
- スクリプト実行時にコマンドライン引数が与えられているか確認する。
- 引数があれば、それらを結合して一つの住所文字列として扱う。
- 引数がなければ、クリップボードにコピーされている内容を住所として扱う。
- 取得した住所を元に、GoogleマップのURLを構築する。
webbrowser.open()
で、そのURLを新しいブラウザータブで開く。
3. 完成したコード全体
上記の設計に基づいた完全なスクリプトを以下に示します。この内容をmap_it.py
などのファイル名で保存してください。
#! /usr/bin/env python3
# map_it.py - コマンドラインやクリップボードから住所を起動する
import webbrowser
import sys
import pyperclip
# GoogleマップのベースURL
google_maps_url = "https://www.google.com/maps/place/"
# 1. コマンドライン引数から住所を取得
if len(sys.argv) > 1:
# sys.argv[0]はスクリプト名なので、[1:]で引数部分だけを取得
address = ' '.join(sys.argv[1:])
else:
# 2. コマンドライン引数がなければ、クリップボードから住所を取得
address = pyperclip.paste()
# 3. URLを構築してブラウザで開く
webbrowser.open(google_maps_url + address)
4. スクリプトの実行方法
このスクリプトはターミナルやコマンドプロンプトから使用します。
コマンドライン引数を使う場合 調べたい住所をスクリプト名に続けて入力します。
python map_it.py 東京都千代田区千代田1-1
このコマンドを実行すると、ブラウザが起動し、皇居の地図が表示されます。
クリップボードを使う場合
- まず、ウェブページなどから住所(例:
埼玉県さいたま市中央区新都心8
)をクリップボードにコピーします。 - ターミナルで、引数を付けずにスクリプトを実行します。
python map_it.py
クリップボードの内容が読み取られ、さいたまスーパーアリーナの地図がブラウザで開かれます。
まとめ
このスクリプトは、Pythonの標準ライブラリとサードパーティ製ライブラリを組み合わせることで、日常的なウェブ操作を簡単に自動化できることを示しています。コマンドライン引数とクリップボードという2つの入力ソースを扱うことで、柔軟で実用的なツールをわずかなコードで作成することが可能です。