Python实现Todo任务管理应用
开发
使用Python实现简单的Todo任务管理应用
在本教程中,我们将使用Python构建一个可执行的命令行Todo任务管理程序。这将帮助您理解如何通过Python操作文件、处理用户输入,以及如何使用字典或列表维护简单的内存数据库。
功能描述
- 添加任务:用户可以添加任务到任务列表。
- 查看任务列表:显示用户现有的任务。
- 标记任务为完成:设置任务完成状态。
- 删除任务:允许用户删除不需要的任务。
- 持久化存储:将任务保存到本地文件中,即使程序退出后仍然可以加载任务。
实现方案
我们将使用Python内置模块 json
进行数据持久化,os
模块用于检查文件是否存在。
- 核心数据结构: 使用列表存储任务,每个任务是一个字典。
- 功能实现: 创建一个循环式命令行菜单,用户可以选择不同功能。
- 持久化: 在程序启动时加载任务数据,并在退出时保存数据到本地JSON文件。
步骤实现
1. 准备环境
确保您安装了Python 3.6及以上版本。JSON模块是Python自带的,无需额外安装。
2. 创建项目结构
创建一个Python文件(如 todo_manager.py
),程序会生成一个本地文件(如 tasks.json
)来保存任务。
touch todo_manager.py
3. 编写代码
3.1 主程序结构
import json
import os
# 定义任务文件名称
TASKS_FILE = 'tasks.json'
def load_tasks():
"""加载任务数据"""
if os.path.exists(TASKS_FILE):
with open(TASKS_FILE, 'r') as file:
return json.load(file)
return []
def save_tasks(tasks):
"""保存任务数据"""
with open(TASKS_FILE, 'w') as file:
json.dump(tasks, file, indent=4)
def show_menu():
"""打印菜单"""
print("\nTodo任务管理 - 菜单")
print("1. 查看任务列表")
print("2. 添加新任务")
print("3. 标记任务为完成")
print("4. 删除任务")
print("5. 退出程序")
3.2 核心功能
def view_tasks(tasks):
"""查看任务列表"""
if not tasks:
print("当前没有任何任务")
else:
print("\n任务列表:")
for idx, task in enumerate(tasks, start=1):
status = '✓' if task['completed'] else '✗'
print(f"{idx}. [{status}] {task['title']}")
def add_task(tasks):
"""添加新任务"""
title = input('请输入任务描述: ').strip()
if title:
tasks.append({"title": title, "completed": False})
print("任务添加成功!")
else:
print("任务描述不能为空。")
def mark_task_completed(tasks):
"""标记任务为完成"""
view_tasks(tasks)
try:
task_num = int(input("请输入要标记完成的任务编号: "))
if task_num < 1 or task_num > len(tasks):
print("无效编号!")
else:
tasks[task_num - 1]['completed'] = True
print("任务已标记为完成!")
except ValueError:
print("请输入有效整数编号。")
def delete_task(tasks):
"""删除任务"""
view_tasks(tasks)
try:
task_num = int(input("请输入要删除的任务编号: "))
if task_num < 1 or task_num > len(tasks):
print("无效编号!")
else:
tasks.pop(task_num - 1)
print("任务已删除!")
except ValueError:
print("请输入有效整数编号。")
3.3 主程序入口
def main():
print("欢迎使用Todo任务管理程序!")
tasks = load_tasks()
while True:
show_menu()
choice = input("\n请输入操作编号: ").strip()
if choice == '1':
view_tasks(tasks)
elif choice == '2':
add_task(tasks)
elif choice == '3':
mark_task_completed(tasks)
elif choice == '4':
delete_task(tasks)
elif choice == '5':
save_tasks(tasks)
print("任务已保存,程序退出。")
break
else:
print("无效输入,请重试!")
if __name__ == "__main__":
main()
4. 运行程序
运行程序:
python todo_manager.py
程序将展示菜单,用户可以根据提示完成任务的添加、查看、完成标记和删除操作。退出程序后,任务会自动保存到 tasks.json
文件。
示例输出
欢迎使用Todo任务管理程序!
Todo任务管理 - 菜单
1. 查看任务列表
2. 添加新任务
3. 标记任务为完成
4. 删除任务
5. 退出程序
请输入操作编号: 2
请输入任务描述: 完成Python作业
任务添加成功!
Todo任务管理 - 菜单
1. 查看任务列表
2. 添加新任务
3. 标记任务为完成
4. 删除任务
5. 退出程序
请输入操作编号: 1
任务列表:
1. [✗] 完成Python作业
总结
通过这个教程,您学习了如何使用Python构建一个命令行交互程序,并掌握了以下技能:
- 使用JSON实现简单的持久化存储。
- 通过
os
模块检查文件存在性。 - 使用Python列表和字典管理数据。
该项目可以进一步扩展,比如增加截止日期、分类等功能。祝学习愉快!
编辑:一起学习网