概要
このブログ記事では、Pythonを使用してフォルダ内のすべてのPythonスクリプトをGUIボタンとして整理し、クリック一つで簡単に実行できるアプリケーションの作成方法を詳しく説明します。GUIライブラリtkinter
を用いた使いやすいインターフェイスで、プログラミング作業の効率化を図ります。
使用例
・複数のPythonスクリプトをテストする際、一つ一つコマンドラインで実行する手間を省き、直感的に操作できるため特に便利です。
・教育目的でのプログラミング学習にも最適で、どのスクリプトがどの結果を出すのかを一覧で管理できます。
・例えばフォルダ内にpdf編集ツールのみで構成すれば、Acrobatのように直感的にpdfを編集できます。
pdf編集をするためのフォルダ内のおすすめ構成はページの最後を参照してください。
必要なPythonライブラリとインストール方法
このアプリケーションを作成するためには、tkinter
とsubprocess
モジュールが必要です。tkinter
はほとんどのPython環境に標準で含まれていますが、含まれていない場合は次のコマンドでインストールできます。pip install tk
pythonのインストール方法や使い方は、こちらからどうぞ。
使用手順
- Pythonがインストールされていることを確認します。
- 必要なライブラリがインストールされていることを確認します。
- 下記のプログラムコードをコピーし、任意の名前でPythonファイル(例:script_runner.py)を作成します。
- 作成したPythonファイルを実行すると、フォルダ選択のダイアログが表示されますので、スクリプトが保存されているフォルダを選択します。
- GUIに表示されるボタンから任意のPythonスクリプトを実行できます。
注意点
- このアプリケーションは
.py
ファイルのみを認識します。 - 実行されるPythonスクリプトによっては、管理者権限が必要になる場合があります。
- 環境によっては、Pythonの実行コマンドが
python3
など異なる場合がありますので、適宜読み替えてください。
プログラム
下記のコードをメモ帳などに丸々コピーしてpythonファイル(script_runner.py)にしてください。
import tkinter as tk
from tkinter import filedialog
import os
import subprocess
class PythonScriptRunner:
def __init__(self, master):
self.master = master
self.master.title("Python Scripts Runner")
# フォルダ選択ボタン
self.btn_select_folder = tk.Button(master, text="Select Folder", command=self.select_folder)
self.btn_select_folder.pack(pady=20)
def select_folder(self):
# フォルダ選択ダイアログを開く
folder_path = filedialog.askdirectory()
if folder_path:
self.display_scripts(folder_path)
def display_scripts(self, folder):
# 既存のボタンをクリア
for widget in self.master.winfo_children():
if isinstance(widget, tk.Button) and widget != self.btn_select_folder:
widget.destroy()
# フォルダ内のPythonファイルを探索してボタンを作成
for file in os.listdir(folder):
if file.endswith('.py'):
button = tk.Button(self.master, text=file, command=lambda f=os.path.join(folder, file): self.run_script(f))
button.pack(padx=10, pady=5, fill=tk.BOTH)
def run_script(self, filename):
"""指定されたPythonスクリプトを実行する"""
subprocess.run(['python', filename], check=True)
# GUIアプリケーションの起動
root = tk.Tk()
app = PythonScriptRunner(root)
root.mainloop()
あるいは、下のテキストファイルをダウンロードし、「.txt」を「.py」に変えることでそのまま使えます。
まとめ
このPython GUIアプリケーションは、複数のスクリプトを管理し、簡単に実行する方法を提供します。プログラミング教育や開発効率の向上に役立ててください。
【補足】Acrobatのようにpdfを編集するためのおすすめファイル構成
なお、筆者オススメプログラム群をまとめましたので、必要に応じて、下記からダウンロードしてください。