環境
- Windows 10
- Python 3.10.1
- VSCode
実装
- subprocessモジュールを使用する
- Popen・runどちらでもアプリを起動可能
- アプリのファイルパスを引数に渡すと、そのアプリが起動する
- Popenは非同期、runは同期処理
shared\Application\open_desktop_app_service.py
import subprocess
class OpenDesktopAppService:
def execute(self, app_path):
# 非同期処理
subprocess.Popen(app_path)
# 同期処理(前の処理を待ってから次の処理へ)
subprocess.run(app_path)
呼び出し
packages\open_one_password\main.py
from shared.Application.open_desktop_app_service import OpenDesktopAppService
OpenDesktopAppService().execute(
"C:\\Users\\nishigaki\\AppData\\Local\\1Password\\app\\7\\1Password.exe"
)
ちなみに、既定のアプリで起動することも可能(OSごとに処理を分ける必要有り)
import subprocess
import platform
from shared.Enums.os_type import OsType
class OpenDesktopAppService:
def execute(self, app_path):
if platform.system() == "Windows":
os = OsType.WINDOWS
elif platform.system() == "Darwin":
os = OsType.WINDOWS
else:
os = OsType.LINUX
match os:
case OsType.WINDOWS:
subprocess.Popen(["start",app_path])
case OsType.DARWIN:
subprocess.Popen(["open", app_path])
case OsType.LINUX:
subprocess.Popen(["see", app_path])
case _:
pass
まとめ
いかがでしたでしょうか。本記事では、本記事では、Pythonで特定のアプリケーションを起動する方法について紹介しています。subprocessモジュールは作業自動化にとても有効なので、ぜひ参考にしてみてください