【Python】ファイル・フォルダ・Webページを開く方法【自動化】

みなさん,こんにちは。
シンノユウキ(shinno1993)です。

何らかの作業に使用する一連のファイルやフォルダ,Webページを,一括で開きたい!ということがあります。

私の場合,ある仕事をする際には,複数のWord・Excel・PDFファイルと,辞書的に使用するWebページを開いています。使用するファイルはいくつかのフォルダにまたがっているので,それを行ったり来たりするのも面倒です。Webページも,ブラウザを立ち上げる→ブックマークから開くといった作業も必要です。

ダブルクリック1回で作業を行う前の環境になるとベストでしょう。作業に取りかかるまでのハードルは,圧倒的に少なくしておきたいです。

そこで今回はPythonを使用して,特定のファイル・フォルダ・Webページを開く方法を紹介します。Pythonとして作成することで,ファイルのダブルクリックでプログラムを実行したり,タスクスケジューラで起動したりといったことも可能になります。

スポンサーリンク

Pythonでファイル・フォルダ・Webページを開く方法

下記で,Pythonでファイル・フォルダ・Webページを開く方法をそれぞれ紹介していきます。
最初に,テンプレート(ひな形)となるコードを紹介すると,下記のようになります:

import subprocess
import webbrowser

# ①ファイルを開く
subprocess.Popen(["start", "", r"開くファイルのpath"], shell=True)

# ②フォルダを開く
subprocess.Popen(["explorer",  r"開くフォルダのpath"], shell=True)

# ③Webページを開く
webbrowser.open("URL")

①:ファイルを開く

subprocessモジュールPopen関数を使用します。使い方は下記です:

import subprocess
subprocess.Popen(["start", "", r"開くファイルのpath"], shell=True)

subprocessモジュールは,文字通りサブプロセスを立ち上げるためのモジュールです。Popen関数によりプロセスを生成できます。引数に,リスト形式で実行したいコマンドを指定可能です。startコマンドを指定することで,指定したファイルを既定のプログラムで開くことができます。

上記の場合,標準のシェル(cmd.exe等)で下記のコマンドを実行しています:

start 開くファイルのpath

上記では,subprocess.Popen関数に与えている引数のリストの二つ目に,空文字列("")を指定しています。これは,startコマンドでは,“”で囲った最初のテキストがコマンドプロンプトのタイトルとして設定されてしまうことに関係しています。「開くファイルpath」にスペースが含まれる場合,それがコマンド実行時に“”で囲まれてしまうため,それがタイトルになってしまい,かつ実行するコマンドが空になってしまいます。それを予め避けるため,コマンドプロンプトのタイトルを空文字として設定しているわけなのです。と長々と書きましたが,とりあえず何も考えずに上記のようにしましょう。

②:フォルダを開く

ファイルを開く際と同様に,subprocessモジュールPopen関数を使用します。使い方は下記です:

import subprocess
subprocess.Popen(["explorer", r"開くフォルダのpath"], shell=True)

フォルダの場合は,explorerコマンドを使用します。フォルダパスを指定することで,エクスプローラーでフォルダを開くことができます。

③:Webページを開く

webbrowserモジュールを使用します。使い方は下記です:

import webbrowser
webbrowser.open("URL")

とてもシンプルですね!
上記を実行することで,既定のブラウザで指定したURLのWebページを開くことができます。

注意点

上記で紹介したPopen関数は,プロセスを生成しますが,その終了を待ちません。そのためプログラムの実行の仕方によっては,プロセスの終了前にPythonが終了してしまい,うまくいかない場合があります。

その場合,下記のようにプロセスを変数で受け取り,wait関数で終了待ちをすると良いでしょう:

popen = subprocess.Popen(コマンド, shell=True)
popen.wait()

まとめ

今回はPythonで特定のファイル・フォルダ・Webページを開く方法を紹介しました。

作業に取りかかる前のハードルは極力低くしておきたいもの…。参考になれば幸いです!

タイトルとURLをコピーしました