今回やること
今日の日付を付けて、日記をテキストファイルに保存します。
datetimeとファイル書き込みを組み合わせると、記録アプリの基本形になります。
date.today()で今日の日付を取り、open(..., "a")の追記モードで本文と一緒に保存します。datetimeの基本とファイルの読み書きを組み合わせる制作です。
完成コード
dated_diary.py を作ります。
from datetime import date
today = date.today()
diary_text = "Pythonで日記アプリを作りました。"
with open("diary.txt", "a", encoding="utf-8") as file:
file.write(f"{today}\n")
file.write(f"{diary_text}\n")
file.write("---\n")
with open("diary.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)
動作確認
python dated_diary.py
diary.txt が作成され、今日の日付と日記が表示されれば成功です。
同じフォルダのdiary.txtを開き、YYYY-MM-DD、本文、---の3行があることを確認します。もう一度実行すると同じ形式のまとまりが末尾へ増えます。本文を入力する形へ変える前に、printとinputで文字列入力を練習してください。
コードの考え方
date.today()で今日の日付を取得します"a"は追記モードです- 追記モードなので、実行するたびに日記が後ろへ追加されます
- 最後にファイル全体を読み込んで表示します
よくあるエラー
| エラー | 原因 | 修正 |
|---|---|---|
| 文字化け | 文字コード指定がない | encoding="utf-8" を指定 |
| 前の内容が消えた | "w" を使った | 追記なら "a" |
| 日付が出ない | date.today() を呼んでいない | today = date.today() を確認 |
ファイルが見つからないと思ったときは、ターミナルの現在地を確認します。"w"へ変えると以前の内容を上書きするため、日記の追記では"a"を維持します。
練習
- 日記本文を変える
strftime()で日付表示を変える- 学習メモアプリに変更する
次のステップ
時間を扱う練習として Pythonミニ制作:タイマー に進みます。