【Python】Pythonからバッチファイルやメモ帳などの外部アプリを実行する方法

Python

Windows環境においてPythonを使用して作業を自動化する場合、Pythonスクリプトから外部アプリを起動したいことがあります。C#ではProcess.Start()を使用することで外部アプリを起動しますが、Pythonにも同様の機能が備わっています。

本記事では、Pythonスクリプトから外部アプリを起動する方法を紹介します。

  • Pythonスクリプトからバッチファイルを実行する
  • PythonスクリプトからGUIアプリ(例:メモ帳)を実行する

サンプルコード1:バッチファイルを呼び出す

Pythonで外部プログラムやバッチファイルを実行する場合、標準ライブラリのsubprocessモジュールのrun関数を使用します。

run関数には引数としてリストを渡します。リストの中身は以下の通りです。

  • ひとつ目の要素:起動したい外部プログラムやバッチファイル名
  • ふたつ目以降:外部プログラムやバッチファイルに与える引数を順番に記述

以下は、subprocess.runを使用してバッチファイルを実行する例です。

import subprocess

# バッチファイルのパスと引数
command = ['example.bat', 'arg1', 'arg2']

# バッチファイルの実行
subprocess.run(command)

実行されるバッチファイル

@echo off
echo example.bat is executed with %1 %2

実行結果

D:\Sample\Python>python sample.py
example.bat is executed with arg1 arg2

D:\Sample\Python>pause
続行するには何かキーを押してください . . .

サンプルコード2:メモ帳を呼び出す

バッチファイルを呼び出す場合と同様の方法で、メモ帳などの外部アプリを起動することも出来ます。

import subprocess

# バッチファイルのパスと引数
command = [ 'notepad', r'D:\Sample\Python\input.txt' ]

# バッチファイルの実行
subprocess.run(command)

実行結果

まとめ

本記事では、Pythonスクリプトから外部アプリを起動する方法を紹介しました。Windows環境において作業を自動化する場合にGUIや外部アプリとの連携を必要とすることがあるかと思います。そのような場合に、外部アプリの起動をご活用ください。

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