一起学习网 一起学习网


Python Todo任务管理系统构建指南

开发 Python, Todo管理系统, 命令行应用, 数据持久化, 任务管理 05-30

使用Python构建一个简单的Todo任务管理系统

介绍

本文将带你实现一个简单的基于命令行的Todo任务管理系统。该系统允许用户添加任务、查看任务列表、标记任务为完成以及删除任务。通过这个项目,你可以熟悉Python基本的数据结构和文件操作。


第一步:系统功能分析

我们需要实现以下功能:

  1. 添加任务。
  2. 展示所有任务。
  3. 标记任务完成。
  4. 删除任务。

我们将使用Python中的文本文件进行数据持久化,以确保任务列表在程序关闭后仍然可用。


第二步:项目结构

我们的项目将由以下几个部分组成:

  • todo_manager.py: 主程序文件。
  • tasks.txt: 用于存储任务列表。

第三步:编码实现

以下是完整代码和步骤:

  1. 初始化项目 创建一个名为todo_manager.py的文件,并创建一个空的tasks.txt文件用于存储任务。

    # todo_manager.py
    import os
    
    # 文件路径
    TASKS_FILE = "tasks.txt"
    
    # 检查并创建任务文件
    if not os.path.exists(TASKS_FILE):
        open(TASKS_FILE, 'w').close()
    
  2. 定义基础功能

    设置函数来处理任务添加、查看、标记完成等功能。

    def load_tasks():
        """从文件加载任务列表"""
        with open(TASKS_FILE, "r") as file:
            tasks = [line.strip() for line in file.readlines()]
        return tasks
    
    def save_tasks(tasks):
        """保存任务列表到文件"""
        with open(TASKS_FILE, "w") as file:
            for task in tasks:
                file.write(task + "\n")
    
  3. 功能实现

    • 添加任务

      def add_task(task):
          """添加任务到列表"""
          tasks = load_tasks()
          tasks.append(f"[ ] {task}")  # [ ] 表示未完成状态
          save_tasks(tasks)
          print(f"任务 '{task}' 已添加!")
      
    • 查看任务

      def view_tasks():
          """展示所有任务"""
          tasks = load_tasks()
          if not tasks:
              print("当前没有任务!")
          else:
              for i, task in enumerate(tasks, start=1):
                  print(f"{i}. {task}")
      
    • 标记任务完成

      def complete_task(index):
          """标记任务为完成"""
          tasks = load_tasks()
          if 0 < index <= len(tasks):
              task = tasks[index - 1]
              if "[X]" in task:
                  print("任务已经完成过!")
              else:
                  tasks[index - 1] = task.replace("[ ]", "[X]")
                  save_tasks(tasks)
                  print(f"任务 '{task}' 已标记为完成!")
          else:
              print("任务索引无效!")
      
    • 删除任务

      def delete_task(index):
          """删除任务"""
          tasks = load_tasks()
          if 0 < index <= len(tasks):
              task = tasks.pop(index - 1)
              save_tasks(tasks)
              print(f"任务 '{task}' 已删除!")
          else:
              print("任务索引无效!")
      
  4. 主菜单 最后,编写主菜单,供用户选择操作:

    def main():
        while True:
            print("\nTodo任务管理系统")
            print("1. 添加任务")
            print("2. 查看任务")
            print("3. 标记任务完成")
            print("4. 删除任务")
            print("5. 退出")
    
            choice = input("请选择操作(1-5): ")
    
            if choice == "1":
                task = input("请输入任务内容: ")
                add_task(task)
            elif choice == "2":
                view_tasks()
            elif choice == "3":
                index = int(input("请输入要标记完成的任务索引: "))
                complete_task(index)
            elif choice == "4":
                index = int(input("请输入要删除的任务索引: "))
                delete_task(index)
            elif choice == "5":
                print("感谢使用,程序退出!")
                break
            else:
                print("无效选择,请重试!")
    
    if __name__ == "__main__":
        main()
    

第四步:运行与测试

  1. 在终端中运行todo_manager.py文件。

    python todo_manager.py
    
  2. 测试以下功能:

    • 添加任务,例如输入任务学习Python
    • 查看任务列表,确认任务已添加。
    • 标记任务完成并再次查看。
    • 删除任务并确认任务列表更新。

第五步:进阶

可以尝试以下改进:

  • 添加任务的截止日期。
  • 为任务添加优先级标签。
  • 使用SQLite数据库代替文本文件以提升性能和功能扩展性。
  • 创建图形用户界面(GUI)或网页界面。

总结

通过实现这个项目,你可以练习Python的文件操作、列表处理以及基础交互逻辑。希望你能从中获得乐趣并进一步探索更多高级功能!


编辑:一起学习网