Python | 1 日 90 分 × 7 日アプリ学習:ファイルに保存するメモ帳(初級編)

Web APP Python
スポンサーリンク

2日目のゴール

2日目のテーマは
「ファイル保存を“上書きだけ”から一歩進めて、より実用的なメモ帳に近づけること」です。

今日できるようになってほしいのは、この3つです。

書き込みモード "w" と追記モード "a" の違いを理解する
複数行のメモを書けるようにする
保存処理を関数にまとめて、アプリらしい形にする

1日目で「ファイルに書ける」感覚はつかめました。
2日目はそれを“使える形”に育てていきます。


書き込みモード “w” の復習

“w” は「上書き保存」

昨日使った "w" モードは、
ファイルの中身を全部消してから書き始めるモードでした。

with open("memo.txt", "w", encoding="utf-8") as f:
    f.write("上書きされます")
Python

このコードを2回実行すると、
1回目の内容は完全に消えてしまいます。

これは「メモ帳アプリ」としては少し不便です。
普通は、前のメモを残したまま、新しいメモを追加したいですよね。

そこで登場するのが "a" モードです。


追記モード “a” の登場

“a” は「ファイルの末尾に追加する」

追記モード "a" を使うと、
既存の内容を消さずに、後ろに追加できます。

with open("memo.txt", "a", encoding="utf-8") as f:
    f.write("これは追記されます\n")
Python

ここでの重要ポイントは2つです。

既存の内容は消えない
書いた内容は“末尾に追加される”

つまり、
メモ帳として自然な動きになるわけです。


改行を自分で入れる必要がある

write は「改行を自動で入れない」

print は自動で改行しますが、
write は自動で改行しません。

f.write("こんにちは")
f.write("世界")
Python

この場合、ファイルには

こんにちは世界

と書かれます。

行を分けたいときは、自分で \n を入れます。

f.write("こんにちは\n")
f.write("世界\n")
Python

ここは初心者がよくつまずくポイントなので、
しっかり意識しておきましょう。


複数行メモを保存する仕組みを作る

ユーザーが「空行を入力したら終了」する形

メモ帳アプリとして自然なのは、

1行入力
Enter
また1行入力
Enter

空行を入力したら保存終了

という流れです。

これを Python で書くとこうなります。

def write_memo():
    print("メモを入力してください。空行で終了します。")

    with open("memo.txt", "a", encoding="utf-8") as f:
        while True:
            line = input("> ")

            if line.strip() == "":
                print("入力終了。保存しました。")
                break

            f.write(line + "\n")
Python

ここでの深掘りポイントは、

while True: で「何行でも入力できる」
空行なら break で終了
write(line + "\n") で改行つき保存

という、
「メモ帳として自然な動き」を実現していることです。


保存処理を関数にまとめる意味

main を“アプリの流れだけ”にする

保存処理を関数にすると、
main がとても読みやすくなります。

def main():
    print("メモ帳アプリ(2日目)")
    write_memo()
Python

これだけでアプリの流れが見えるようになります。

関数にまとめるメリットは、

処理の意味が明確になる
main が読みやすくなる
あとで機能を増やしやすくなる

という点にあります。


2日目のミニアプリ:複数行メモ帳

今日の学びを全部入れたコード

def write_memo():
    print("メモを入力してください。空行で終了します。")

    with open("memo.txt", "a", encoding="utf-8") as f:
        while True:
            line = input("> ")

            if line.strip() == "":
                print("入力終了。memo.txt に保存しました。")
                break

            f.write(line + "\n")


def main():
    print("ファイル保存メモ帳(2日目)")
    write_memo()


main()
Python

このアプリはこう動きます。

起動すると「メモ帳(2日目)」と表示
何行でもメモを入力できる
空行を入力すると保存して終了
memo.txt に追記される

これで、
「実際に使えるメモ帳アプリ」に一歩近づきました。


2日目のまとめ:今日つかんでほしい感覚

今日の本質はこれです。

"w" は上書き、"a" は追記
write は改行を自動で入れない
複数行入力は while ループで作れる
保存処理を関数にするとアプリが整理される

ここまで理解できていれば、
3日目の「保存したメモを読み込む」ステップに
スムーズに進めます。

あなたのメモ帳アプリは、
もう“本物のアプリ”に近づいています。

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