【Python】エクスプローラーの起動:指定したフォルダ・ファイルを開く(subprocessモジュール)
2022.02.14 /
本記事ではPythonでエクスプローラーを起動する方法について解説していきます。
Pythonの標準モジュールの一つ、subprocessを利用することで指定フォルダをエクスプローラー上で開くことができます。また指定したファイルやWebサイトを開くことも可能です。
ここで解説する知識は様々なアプリケーションに利用ができます。Pythonのアプリケーションへの利用方法についても後半で解説しております。
subprocessモジュール
subprocessモジュールとは
subprocessモジュールとはPythonからサブプロセス(プログラム)を実行するためのモジュールです。
subprocessモジュールにより、Pythonスクリプトから他のアプリケーションを起動することができます。
例えばエクセルやエクスプローラー、Webブラウザなど様々なアプリケーションを起動できます。
標準モジュールのためわざわざpipでインストールする必要はありません。スクリプトの先頭で以下のようにインポートして利用します。
import subprocess
subprocessについて詳しくは以下記事をご参照ください。
【Python】subprocess.Popen()関数で他のプログラムを起動する
subprocess.Popen()とは
subprocessのPopen関数を使うことでPythonから他のプログラム(プロセス)を起動することができます。起動したプログラムはバックグラウンドで起動されます。
PopenのPはプロセス(Process)を意味します。
subprocess.Popen()は次のように使用します。
subprocess.Popen(プログラムファイル)
引数のプログラムファイルには、起動したい外部プログラムのファイル名を渡します。
エクスプローラーの起動:指定フォルダを開く
subprocess.Popen()で指定したフォルダをエクスプローラーで開くには次のように実行します。
subprocess.Popen(["explorer", r"フォルダのパス"], shell=True)
shell=Trueとすることで標準のシェル(Windowsではコマンドプロンプトcmd.exe)で実行します。
例えば共有フォルダ(\\shared-folder)を開くには以下のようにコードを記入します。
import subprocess
path = r"\\shared-folder"
subprocess.Popen(['explorer', path], shell=True)
指定したファイルを開く
指定したファイルをsubprocess.Popen()で起動することができます。
subprocess.Popen(['start', r'開くファイルのパス'], shell=True)
引数にはリストでコマンドとパスを指定しています。startコマンドを指定するとファイルを既定のプログラムで起動します。
import subprocess
subprocess.Popen(['start', r'C:\temp\test.txt'], shell=True)
Chromeで指定したURLを開く
subprocess.Popen()を利用することでChromeを起動し、指定したURLを開くことができます。
subprocess.Popen([chrome,'URLを指定'])
例えばOFFICE54のサイトをsubprocess.Popen()を使用して開くには次のようにコードを記入します。
import subprocess
url = " https://office54.net/"
subprocess.Popen([chrome,url])
アプリケーションでのsubprocessの利用方法
tkinterでの利用
私の場合、tkinterで作成するGUIアプリケーションで利用することが多いです。
共有フォルダ内のフォルダを開いたり、特定の処理を行った後にファイルを開いたりと重要な役割を果たしています。
仕事で利用するGUIアプリケーションでは特定のファイル・フォルダを利用することが多いので、subprocessでフォルダやファイルを開く操作は使用する頻度が多いかと思います。
Pythonによるtkinterの使用方法については以下記事をご参照ください。
【Python】tkinterを使ったGUIアプリケーションの作成方法
Webアプリケーション(Django)での利用
Djangoで作成した社内Webアプリケーションでもよく利用しています。
このWebアプリケーションは社内の共有フォルダと同じネットワーク上に存在しているため、共有フォルダとの連携が可能です。
そのためsubprocess.Popenを利用して、Webアプリケーションを通して特定のフォルダやファイルをユーザーのパソコン上に開いています。
Djangoの使用方法については以下記事をご参照ください。
【django】Webサイト・アプリを作成するまでの一連の流れ
ファイル・フォルダ・Webページの一括オープン
業務の開始時や特定の業務に関連したファイル・フォルダ・Webページを一括で開くために利用することもできます。
ほとんどの方でパソコンを起動したら開くファイルやフォルダ、Webページは決まっていることが多いです。それらを事前にsubprocess.Popenで登録しておくことですぐに業務をスタートできるようになります。
この場合、作成したスクリプトはpyinstallerを使ってexeファイル化しておくと、クリックでプログラムを走らせることができるので便利です。
【Python】pyinstallerでpyファイルを配布用にEXE化する方法
exeファイルを指定した時間に起動(自動実行)するようにしたい場合は、タスクスケジューラを利用してください。
【Python】Windowsタスクスケジューラで定期的に自動実行する方法(EXEファイル)
まとめ
本記事「エクスプローラーの起動:指定したフォルダ・ファイルを開く(subprocessモジュール)」はいかがでしたか。
本記事ですでに述べたように、様々なアプリケーションで利用できる便利な機能です。
ぜひ作成するアプリケーションに組み込んで、利用しやすいアプリを作成していってください。