Python:簡単なメモ帳ツールをつくる
音声
目次
はじめに
今回できるようになることは、シンプルなGUIメモ帳を作って保存と読み込みができるようになることです。
このセクションでは、Pythonの基本とツール選びをやさしく説明します。
Pythonは手軽にコードを書いてすぐ動かせる言語です。
今回使う標準ライブラリは、tkinter(GUI)とファイル操作です。
変数・関数・モジュール(ファイル分割)の基礎を復習しつつ、実用的な最小アプリを作ります。
初心者でもわかるように、かたまりを小さくして説明します。
実装:最小コード
最小コードは次のとおりです。
import tkinter as tk
from tkinter import filedialog, messagebox
def save():
path = filedialog.asksaveasfilename(defaultextension=".txt")
if path:
with open(path, "w", encoding="utf-8") as f:
f.write(txt.get("1.0", "end").rstrip())
messagebox.showinfo("保存", "保存しました:" + path)
def open_file():
path = filedialog.askopenfilename(filetypes=[("Text", "*.txt")])
if path:
with open(path, "r", encoding="utf-8") as f:
txt.delete("1.0", "end")
txt.insert("1.0", f.read())
root = tk.Tk()
root.title("簡単メモ帳")
txt = tk.Text(root, wrap="word")
txt.pack(expand=True, fill="both")
tk.Button(root, text="開く", command=open_file).pack(side="left")
tk.Button(root, text="保存", command=save).pack(side="right")
root.mainloop()
このコードを実行すると小さなウィンドウが開きます。
テキストを入力して「保存」を押すとファイルとして書き出せます。
「開く」を押すと、選んだテキストファイルを読み込んで表示できます。
実行と確認
実行方法は次のとおりです。
- ファイル名を memo.py として保存します。
- コマンドプロンプトやターミナルで python memo.py を実行します。
- VSCodeではファイルを開き、F5または「実行とデバッグ」を選んで実行します。
python memo.py
出力例として、メッセージボックスに "保存しました:C:\path\to\file.txt" と表示されます。
確認方法は次のとおりです。
- テキストを入力して保存したあと、同じファイルを開いて内容が一致するか確認します。
- デバッグ用に一時的に save 関数へ print(len(txt.get("1.0","end"))) を追加し、行数や文字数を確認します。
- txt の型は tkinter.Text なので、type(txt) を確認すると把握できます。
デバッグと1段ステップアップ(使い分けの基準)
デバッグの見方としては、printで中間値を出力して変数の中身を見る方法が即効性があります。
logging(標準ライブラリ)を使うと、実行環境に応じて出力の詳細度を切り替えられます。
小さなGUIでは、messageboxやprintでログを確認すると把握しやすいです。
1段ステップアップとして、例外処理とファイルエンコーディング対応を追加すると堅牢になります。
次は例として、saveをtry/exceptでラップした拡張例です。
# 拡張例(抜粋)
try:
with open(path, "w", encoding="utf-8") as f:
f.write(txt.get("1.0","end").rstrip())
except OSError as e:
messagebox.showerror("エラー", f"保存できませんでした: {e}")
使い分けの基準として、短いテストや学習時はprint中心でも問題ありません。
長期運用や複数人開発では、loggingと例外処理を使う前提にすると安定します。
よくあるミスとして、ファイルダイアログの戻り値が空のときに処理を続けてしまうことがあります。
ユーザーがキャンセルするとpathが空文字になるため、if path:で処理を囲むと回避できます。
別ケースとして、tkinterが未インストールの環境ではImportErrorが出ることがあります。
その場合は環境のPythonを入れ直すか、Linuxではtkinterを追加インストールすると解決しやすいです。
注意(ここだけ)
GUIでのファイル書き込みは上書きされるため、誤って同名ファイルを上書きしないように、必要に応じてバックアップや別名保存を促すUIを追加するのが要チェックです。
要約
- Tkinter を使って簡単なメモ帳を作り、保存と読み込みができます。
- 最小限のコードでウィンドウ、テキスト、ボタンを実装できます。
- 実行は
または VSCode の実行機能で行えます。python memo.py - デバッグは print と logging を状況に応じて使い分けてください。
- よくあるミスはキャンセル時の空パスやエンコーディングの問題なので、if によるチェックと例外処理で対処してください。