Masayan tech blog.

  1. ブログ記事一覧>
  2. Pythonで特定のアプリケーションを起動する方法

Pythonで特定のアプリケーションを起動する方法

公開日

環境

  • 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モジュールは作業自動化にとても有効なので、ぜひ参考にしてみてください