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

Web APP Python
スポンサーリンク

3日目のゴール

3日目のテーマは
「保存したメモを“読み込めるようにして”、メモ帳としての完成度を一段上げること」です。

1日目:ファイルに書けるようになった
2日目:複数行を追記できるようになった

そして3日目は、

保存したメモを読み込む
読み込んだ内容を画面に表示する
読み込み処理を関数として整理する

ここを目指します。


ファイルを読むには open の「読み込みモード」を使う

“r” は「読み込み専用モード」

ファイルを読むときは、
open の第2引数に "r" を指定します。

with open("memo.txt", "r", encoding="utf-8") as f:
    text = f.read()
Python

ここでの重要ポイントは、

"r" は「読み込み専用」
read() は「ファイル全体を文字列として読み込む」

ということです。

ファイルの中身がそのまま text に入ります。


read() の動きと注意点

read() は「全部まとめて読み込む」

例えば、memo.txt がこうだったとします。

りんご
みかん
ぶどう

read() を使うと、こうなります。

text = "りんご\nみかん\nぶどう\n"
Python

つまり、

改行も含めて“ファイルの中身そのまま”が入る

ということです。

ここで深掘りポイント。

read() は便利だが、ファイルが大きいと全部読み込むので重くなる。
ただし、メモ帳レベルなら問題なし。


ファイルを1行ずつ読む方法

for 文で「行ごとに処理」できる

メモ帳アプリでは、
「行ごとに読みたい」ことも多いです。

with open("memo.txt", "r", encoding="utf-8") as f:
    for line in f:
        print("行:", line.strip())
Python

ここでのポイントは、

for line in f: で「1行ずつ読み込む」
line.strip() で改行を取り除く

ということです。


読み込み処理を関数にまとめる

「読み込んで表示する」機能を作る

メモ帳アプリに「読み込み機能」を追加します。

def read_memo():
    print("=== 保存されたメモ ===")

    try:
        with open("memo.txt", "r", encoding="utf-8") as f:
            text = f.read()
            print(text)
    except FileNotFoundError:
        print("まだメモがありません。memo.txt が見つかりません。")
Python

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

ファイルが存在しない場合に備えて
try / except でエラーを防いでいる

ということです。

初心者が最初にぶつかるのが
「ファイルがないとエラーになる」問題なので、
ここでしっかり対策を入れておきます。


書く機能と読む機能を組み合わせる

メモ帳としての“基本2機能”がそろう

2日目の write_memo()
今日の read_memo() を組み合わせると、
メモ帳としての基本が完成します。

def main():
    print("ファイル保存メモ帳(3日目)")
    print("1: メモを書く")
    print("2: メモを読む")
    print("0: 終了")

    choice = input("番号を選んでください: ")

    if choice == "1":
        write_memo()
    elif choice == "2":
        read_memo()
    else:
        print("終了します。")
Python

ここでの重要ポイントは、

「書く」と「読む」が
それぞれ独立した関数になっている

ということです。


3日目のミニアプリ:書く+読むメモ帳

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

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 read_memo():
    print("=== 保存されたメモ ===")

    try:
        with open("memo.txt", "r", encoding="utf-8") as f:
            text = f.read()
            print(text)
    except FileNotFoundError:
        print("まだメモがありません。memo.txt が見つかりません。")


def main():
    print("ファイル保存メモ帳(3日目)")
    print("1: メモを書く")
    print("2: メモを読む")
    print("0: 終了")

    choice = input("番号を選んでください: ")

    if choice == "1":
        write_memo()
    elif choice == "2":
        read_memo()
    else:
        print("終了します。")


main()
Python

役割を日本語で説明してみる

関数ごとの「一文説明」

write_memo
複数行のメモを入力し、memo.txt に追記する。

read_memo
memo.txt を読み込み、内容を画面に表示する。

main
メニューを表示し、「書く」か「読む」かを選ばせる。

ここまで言えれば、
ファイル保存アプリの基礎は完全に理解できています。


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

今日の本質はこれです。

"r" は読み込みモード
read() はファイル全体を文字列として読む
for line in f: で1行ずつ読める
ファイルがない場合は FileNotFoundError が起きるので対策する
「書く」と「読む」を関数に分けるとアプリが整理される

ここまで理解できていれば、
4日目の「メニュー化してアプリとして完成させる」ステップに
スムーズに進めます。

あなたのメモ帳アプリは、
もう“実用アプリ”の入り口に立っています。

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