备忘录小程序记录v1

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39591494/article/details/82713078
#!/usr/bin/env python
# -*- coding:utf-8 -*-

import sys
import pickle
import time
import os
from color_me  import  ColorMe

init = ["系统提示:此信息为初始化信息,默认会有一条数据, 请忽略........"]
__author__ = "YanZanG"

class Memo(object):
    def __init__(self, name, thing, date, time):
        self.name = name
        self.thing = thing
        self.date = date
        self.time = time
        self.__id = 0

    @property
    def id(self):
        return self.__id

    def set_id(self, restart):
        self.__id = restart + self.__id
        return self.__id

    def welcome(self):
        print(f"Welcome to the {__author__} applet.".center(60,"-"))


class MemoAdmin(object):
    """"""
    def __init__(self):
        self.user_list = []

    def user_add(self):
        count = True
        while (count):
            Your_title = input("请您输入备忘录标题:".strip())
            Your_event = input("请您输入备忘录事件:".strip())
            Your_date = input("请您输入备忘录用时时间:".strip())
            time1 = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

            if Your_title == "":
                print("标题不能为空!!!")

            elif Your_event == "":
                print("备忘录事件不能为空")

            elif Your_date == "":
                print("备忘录用时不能为空")

            else:
                self.create(Your_title, Your_event, Your_date, time1)
                count = False

    def create(self,Your_title, Your_event, Your_date, time1):
        memo = Memo(Your_title, Your_event, Your_date, time1)
        user_result = (f"ID:{memo.set_id(self.count())}、标题:{Your_title}、事件:{Your_event}、用时时间:{Your_date}、创建时间 : {time1}")

        self.user_list.append(user_result)
        self.save()

    def user_delete(self):
        if os.path.isfile("db.pkl"):
            user_delete = int(input("请您输入您需要删除的id号:".strip()))
            with open('db.pkl', 'rb') as f:
                data = pickle.load(f)
                data.pop(user_delete)
                self.user_list = []
            for a in data:
                self.user_list.append(a)

            self.save()
        else:
            print("nonono")

    def user_search(self):
        search_result = int(input("请您输入您需要查找的ID:".strip()))
        if os.path.isfile("db.pkl"):
            with open('db.pkl', 'rb') as f:
                data = pickle.load(f)
                print(data[search_result])
        else:
            search_result = ColorMe("没有备忘录信息,请您选择添加备忘录并创建").red()
            print(search_result)


    def save(self):
        with open('db.pkl', 'wb') as f:
            pickle.dump(self.user_list, f)
            save_result = ColorMe(f"您当前一共有{len(self.user_list)}条备忘录信息").green()
            print(save_result)

    def load(self):
        if os.path.isfile("db.pkl"):
            with open('db.pkl', 'rb') as f:
                data = pickle.load(f)
            load_welcome = ColorMe("备忘录信息,数据如下:".center(60, "-")).green()
            print(load_welcome)
            for line in data:
                print(line)
        else:
            load_warning = ColorMe("没有备忘录文件,请你添加并创建").red()
            print(load_warning)

    def count(self):
        with open('db.pkl', 'rb') as f:
            data = pickle.load(f)
            result = len(data)
            return  result

    def exit(self):
        save_Tips = ColorMe("欢迎你再次使用,再见......".center(60,"-")).green()
        print(save_Tips)
        sys.exit()

    def delete(self):
        if os.path.isfile("db.pkl"):
            os.remove("db.pkl")
            delete_success = ColorMe("恭喜您,清除备忘录成功!!!").green()
            print(delete_success)
        else:
            delete_warning =  ColorMe("没有备忘录文件,请你添加并创建").red()
            print(delete_warning)

    def user_input(self):
        print(f"Welcome to the {__author__} memo applet.".center(60,"-"))
        user_menu = {
            "1" : "添加备忘录数据",
            "2" : "删除备忘录数据",
            "3" : "查找备忘录数据",
            "p" : "查看备忘录数据",
            "d" : "清空备忘录数据",
            "Q" : "退出备忘录数据"
        }

        user_menu2 = {
            "1" : "user_add",
            "2" : "user_delete",
            "3" : "user_search",
            "p" : "load",
            "d" : "delete",
            "Q" : "exit"
        }

        if os.path.isfile("db.pkl"):
            with open('db.pkl', 'rb') as f:
                data = pickle.load(f)
                for a in data:
                    self.user_list.append(a)
                Os_Tips_result = ColorMe(f"系统提示,初始备忘录信息成功,目前一共有{len(self.user_list)}条数据").green()
                print(Os_Tips_result)

        else:
            with open('db.pkl', 'wb') as f:
                C = ColorMe("系统提示:备忘录程序初始化完毕,请再次打开.....").green()
                print(C)
                pickle.dump(init, f)
                sys.exit()

        try:
            while True:
                for k, v in user_menu.items():
                    print(f"""
                    {k}、{v}
                    """)
                User_choice = input("请您输入选项:".strip())
                if User_choice.strip() == "":
                    error_warning = ColorMe("请您输入正确的数值!!!").red()
                    print(error_warning)
                else:
                    if hasattr(self,user_menu2.get(User_choice)):
                        func = getattr(self,user_menu2.get(User_choice))
                        func()
                    else:
                        error_warning2 = ColorMe("系统检测错误,请您输入正确的选项").red()
                        print(error_warning2)
        except Exception as f:
            print(f)

if __name__=="__main__":
    Admin = MemoAdmin()
    Admin.user_input()

# TODO([email protected]) 转换器-----> 2018年9月14日
#!/usr/bin/env Python
#-*- coding:utf-8 -*-

__author__ = 'De8ug'

class ColorMe:
    """
    give me color see see...
    实际用起来很简单:
        ColorMe('somestr').blue()
    """
    def __init__(self, some_str):
        self.color_str = some_str

    def blue(self):
        str_list = ["\033[34;1m", self.color_str, "\033[0m"]
        return ''.join(str_list) # "\033[34;1m" + self.color_str + "\033[0m"

    def green(self):
        str_list = ["\033[32;1m", self.color_str, "\033[0m"]
        return ''.join(str_list) # "\033[34;1m" + self.color_str + "\033[0m"

    def yellow(self):
        str_list = ["\033[33;1m", self.color_str, "\033[0m"]
        return ''.join(str_list) # "\033[34;1m" + self.color_str + "\033[0m"

    def red(self):
        str_list = ["\033[31;1m", self.color_str, "\033[0m"]
        return ''.join(str_list) # "\033[34;1m" + self.color_str + "\033[0m"


def main():
    ColorMe('somestr').blue()

if __name__ == '__main__':
    main()

猜你喜欢

转载自blog.csdn.net/qq_39591494/article/details/82713078
今日推荐