Python实现的任务管理助手

这是一个任务管理器的实现,用于管理和切换不同的任务列表。它支持添加、删除、排序任务,并能切换到不同的任务列表。用户可以通过简单的指令进行操作,如查看所有任务、添加新任务、删除现有任务、移动任务到其他列表等。该程序还具备数据持久化功能,能够保存和加载任务数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import os

#storage
validlist = []#有效任务队列
tasks = {}#当前任务-优先级
rank = []#当前已排序任务
#当前任务列
currentlist = "study"
#######

#内存--外部存储连接函数
def get_data(filename,saver):#从filename中向saver写入数据
    if type(saver) == dict:
        file = open("Storage\\"+filename+".txt", 'a')
        file.close()
        file = open("Storage\\"+filename+".txt",encoding = "utf-8")
        for i in file:
            line = i.split()
            saver[line[0]] = line[1]
            rank.append(line[0])
        return

    if type(saver) == list:###这一部分的重构可以优化 但是我懒啊!!!
        with open("Storage\\"+filename+".txt",encoding = "utf-8") as file:
            for i in file:
                line = i.strip()
                saver.append(line)
        return


def save_data(filename,saver):#从saver向filename中写入数据
    if type(saver) == dict:
        file = open("Storage\\"+filename+".txt", 'a')
        file.close()
        with open("Storage\\"+filename+".txt","w",encoding = "utf-8")as file:
            for d in saver:
                file.write(d + ' ' + str(saver[d]) + '\n')
        return    
    if type(saver) == list:###这一部分的重构可以优化 但是我懒啊!!!
        with open("Storage\\"+filename+".txt","w",encoding = "utf-8")as file:
            for l in saver:
                file.write(l+'\n')
        return 

def jump(targetlist):#切换list
    global currentlist
    global tasks
    global rank
    save_data(currentlist,tasks)
    tasks = {}
    rank = []
    get_data(targetlist,tasks)
    currentlist = targetlist
    return
    

###############################################

##############################################CPUandIO

def private_operate(instruction):#核心指令处理器
    global currentlist
    global rank
    global tasks
    if instruction == "help":
        print("Valid instructions:")
        print("ls:print all the tasks")
        print("add:add one task")
        print("help:print instrucions")
        print("remove:remove one task")
        print("eog:I will give you a word")
        print("move:move to another list")
        print("addlist:add a new list")
        print("lslist:print all the lists")
        print("loc:print the list you in")
        return

    if instruction == "fixed":
        print("currentlist "+currentlist)
        print("tasks:")
        print(tasks)
        print("rank:")
        print(rank)
        print("valid:")
        print(validlist)
        return

    if instruction == "sort":
        rank.sort(key = lambda el:int(tasks[el]),reverse=True)
        return




ins = {"ls","add","help","remove","move","addlist","lslist","loc"};#用户可用指令
def operate(instruction):#交互指令处理器
    global currentlist
    global rank
    global tasks

    #调用private_operate层:
    if instruction == "fixed":
        private_operate("fixed")
        return


    #用户可见外层:
    if not(instruction in ins):
        print("INVALID INSTRUCTION!!!")
        return
    #####################只读
    if instruction == "ls":
        private_operate("sort")

        for s in rank:
            print(s+ ' level:'+str(tasks[s]))
        return

    if instruction == "help":
        private_operate("help")
        return

    if instruction == "lslist":
        print(validlist)
        return

    if instruction == "loc":
        print(currentlist)
        return

    #####################只写
    if instruction == "add":
        task = input("Name of the task:")
        level = input("Level of the task:")

        is_data_valid = 0
        try:
            level = int(level)
        except:
            print("Please enter a number as level!")
            return
            

        rank.append(task)
        tasks[task] = level

        

        save_data(currentlist,tasks)
        return

    if instruction == "remove":
        print("Valid tasks:")
        operate("ls")
        task = input("Name of the task:")
        if tasks.get(task)!=None:
            del tasks[task]
            rank.remove(task)

            save_data(currentlist,tasks)
        else:
            print("NOT EXIST!!!")
        return

    if instruction == "move":
        print("Valid list:")
        for i in validlist:
            print(i.strip())
        targetlist = input("Enter the task list you want to go:")
        if targetlist not in validlist:
            print("NOT EXIST!!!")
            return
        if targetlist == currentlist:
            print("YOU ARE ALREADY IN IT!!!")
            return
        #################数据转移
        jump(targetlist)
        print("You are in "+targetlist+" now")
        operate("ls")
        return
    
    if instruction == "addlist":
        listname = input("Name of the list:")
        validlist.append(listname)
        save_data("lists",validlist)
    


         

    
    


################################################



###Shell用户交互窗口
get_data("lists",validlist)#开始使用前先获取有效任务队列    #######接口不一  给我修!
get_data(currentlist,tasks)
print("Manager_0.3 Developed by Eric~")#这个是我做的!!!!

private_operate("help")
while True:
    instruction = input("Manager_0.3>>")
    operate(instruction)
    print("==============================================")
    print("==============================================")
    print("\n")

注意配置运行环境:

要在manager.py所在的目录下增加Storage文件夹,里面要有一个lists.txt 其中添加一行study。

反正很快这个也要被替换成新的助手了。。应该不会再更新,为了避免我把它删掉就先贴上来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值