背景介绍
在日常工作中,我们常常需要记录任务或事件。本项目旨在提供一个简单友好的 todo 应用,用户可通过输入任务内容和日期,保存至本地文件,并支持任务完成功能。该实现不依赖复杂框架,仅使用基础文件操作和json数据处理功能,确保可运行性和易维护性。
思路分析
- 数据结构设计:使用json格式保存任务内容(任务字符串和日期字段),确保数据易于读取和处理。
- 文件操作:采用文件写入和读取(with open)功能,避免文件异常问题。
- 日期处理:用户输入日期字符串(如 “2023-04-05″),需格式化为符合本地存储需求的字符串。
- 核心功能:
- 输入任务内容和日期的验证与输入处理。
- 保存数据到本地文件(json格式)。
- 提供任务完成功能(用户可以选择完成或直接操作已存在的任务)。
代码实现
1. 文件读写与数据处理
import json
def save_task_to_file(task_content, date_str):
"""保存任务内容至本地文件"""
file_path = "todo_data.json"
with open(file_path, 'w', encoding='utf-8') as f:
json.dump({"task": task_content, "date": date_str}, f, indent=4)
print("任务已保存!")
def read_from_file():
"""读取本地文件内容"""
file_path = "todo_data.json"
try:
with open(file_path, 'r', encoding='utf-8') as f:
data = json.load(f)
print("任务内容:", data["task"])
print("保存的日期:", data["date"])
return data
except FileNotFoundError:
print("文件未找到,请重新保存任务!")
return {}
def complete_task(task_content):
"""完成任务功能"""
# 示例:用户选择完成任务
print("任务已完成!新的任务内容为:", task_content)
# 示例:直接使用已存在的任务内容
task_info = read_from_file()
task_info["date"] = "2024-04-05"
save_task_to_file(task_content, task_info["date"])
2. 测试与验证
测试步骤
- 输入任务内容:”学习Python” 和日期:”2023-04-05″
- 输出结果:
{"task": "学习Python", "date": "2023-04-05"}
- 输出结果:
- 用户选择完成任务(例如输入 “学习Python”)
- 输出结果:
任务内容已更新为:学习Python
保存的日期:2024-04-05
- 输出结果:
保存与读取验证
- 保存内容后,再次读取文件验证数据是否正确。
总结
本项目实现了基础的 todo 应用功能,通过文件读写和json数据处理,确保了任务内容的持久化存储和操作的易读性。核心功能包括任务输入、保存、读取和完成任务,确保用户操作的清晰性和有效性。通过简单但功能齐全的实现方式,展示了如何在不依赖框架的前提下完成核心功能。