title: 个人日志 description: 一个将日期条目写入文件并让你读取过去条目的脚本。
个人日志
Dex 嘿。说实话,任务很繁重,我一直想保持一个日志。你能构建一个简单的日记应用吗?我想输入新条目,让它与日期一起保存,并且能够读取旧条目。没什么复杂的。只是想把想法从脑子里记录下来 ✍️
你要构建的内容
Commands: new / read / quit
> new
2026-05-24
上午很有成效。完成了库存管理项目。
搞懂了 JSON 序列化的工作原理。
[在空行上按 Enter 保存]
条目已保存。
> read
--- 2026-05-24 ---
上午很有成效。完成了库存管理项目。
搞懂了 JSON 序列化的工作原理。
--- 2026-05-23 ---
...
> quit你需要的知识
- 文件和异常 - 追加模式用于新条目,读取整个文件,处理首次运行时的缺失文件
- 模块和标准库 -
datetime获取今天的日期字符串 - 字符串 - 格式化日期标题,将文件内容分割回各个条目
- 控制流 - 命令循环,写入条目的多行输入循环
- 输出和输入
提示
追加模式是关键。 用 "a" 打开文件会添加到末尾而不触及现有内容。这就是新条目如何在不删除旧条目的情况下添加进来的。
datetime.date.today() 给你日期。 用 str() 或 f-字符串将其转换为字符串,以用作条目标题。datetime 模块在标准库中。
在写入前收集条目。 让用户输入多行,将每一行添加到列表中。当他们提交空行时,连接列表并一次性写入整个条目。
进一步扩展
一旦核心日志工作正常:
- 限制
read显示的内容。 总是打印整个文件会很快变得难以管理。默认情况下只显示最后三个条目,并提供显示更多的选项。 - 搜索条目。 添加一个
search命令,打印包含关键字的任何条目。 - 每个条目的字数统计。 显示每个条目包含多少字。

