python-项目-图书管理系统(函数实现)

版权声明:所有代码均为自己总结,若有雷同请勿模仿 https://blog.csdn.net/weixin_44253023/article/details/90199619
from datetime import datetime
import os

#保存信息路径
def add_path():
    path1=r"G:\zhanghua\321.txt"
    path2=r"G:\zhanghua\文章信息.txt"
    parent_path1=os.path.dirname(path1)
    parent_path2=os.path.dirname(path2)
    if not os.path.exists(parent_path1):
        os.makedirs(parent_path1)
    if not os.path.exists(parent_path2):
        os.makedirs(parent_path2)
    file1=open(path1,"w",encoding="utf-8")
    file2=open(path2,"w",encoding="utf-8")
    file1.write("{}")
    file2.write("[]")
    file1.close()
    file2.close()
    return True
    
    


#保存用户信息
def add_user(userdict):
    path=r"G:\zhanghua\321.txt"
    file=open(path,"w",encoding="utf-8")
    file.write(str(userdict))
    file.close()
    return True


#读取用户信息
def read_user():
    path=r"G:\zhanghua\321.txt"
    file=open(path,"r",encoding="utf-8")
    user_dict=file.read()
    file.close()
    return eval(user_dict)


#用户名规范
def re_username(username):
    a=True
    if len(username)>=6 and username.isdigit():
        pass
    else:
        a=False
    return a


#判断用户是否存在
def is_user_name(username):
    user_dict=read_user()
    if username in user_dict:
        return False
    return True


#添加用户
#(第二次保存用户信息)本次写入会覆盖写入的内容
def add_users(username,password):
    user_dict=read_user()
    user_dict[username]=password
    add_user(user_dict)
    user_dict=read_user()
    return True


#判断用户名和密码是否存在
def is_username_and_password(username,password):
    user_dict=read_user()
    if user_dict.get(username)==password:
        return True
    return False


#密码规范
def re_password(password):
    b=True
    if len(password)>=8:
        for pwd in password:
            s="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_"
            if pwd  not in s:
                b=False
        if len(set(password))==1:
            b=False
        if password.isdigit() or password.isalpha():
            b=False
            print("密码不可以是纯数字或纯字母")
    else:
        b=False
        print("密码长度不得低于8位")
    return b


#保存文章信息
def add_article(article_news):
    path=r"G:\zhanghua\文章信息.txt"
    file=open(path,"w",encoding="utf-8")
    file.write(str(article_news))
    file.close()
    return True
    

#读取文章信息
def read_article():
    path=r"G:\zhanghua\文章信息.txt"
    file=open(path,"r",encoding="utf-8")
    article_dict_list=file.read()
    file.close()
    return eval(article_dict_list)


#判断文章编号是否存在
def is_article_id(article_id):
    article_dict_list=read_article()
    for article_dict in article_dict_list:
        if article_dict.get("art_id")==article_id:
            return True
    return False

        
#添加文章
def add_articles(article_dict):
    article_dict_list=read_article()
    article_dict_list.append(article_dict)
    add_article(article_dict_list)
    return True


#根据编号查看文章
def read_id_article(article_id):
    article_dict_list=read_article()
    for article_dict in article_dict_list:
        if article_dict.get("art_id")==article_id:
            return article_dict
    return None


#根据作者查看文章
def read_author_article(article_author):
    article_dict_list=read_article()
    for article_dict in article_dict_list:
        if article_dict.get("art_author")==article_author:
            return article_dict
    return None
#继续查看该作者文章
def re_read_author_article(article_author):
    article_dict_list=read_article()
    ls=[]
    for article_dict in article_dict_list:
        if article_dict.get("art_author")==article_author:
            ls.append(article_dict)
    return ls
        
#查看所有文章    
def read_all_article():
    article_dict_list=read_article()
    if article_dict_list!=[]:
        for article_dict in article_dict_list:
            print("文章编号:",article_dict.get("art_id"))
            print("文章作者:",article_dict.get("art_author"))
            print("文章标题:",article_dict.get("art_title"))
            print("文章内容:",article_dict.get("art_cent"))
            print("文章时间:",article_dict.get("art_time"))
    else:
        print("没有文章")
    return True
            
#根据编号删除文章
def delate_id_article(article_id):
    article_dict_list=read_article()
    for article_dict in article_dict_list:
        if article_dict.get("art_id")==article_id:
             article_dict_list.remove(article_dict)
             add_article(article_dict_list)
             return True
    return False
   
#根据作者删除文章
def  delate_author_article(article_author):
    article_dict_list=read_article()
    for article_dict in article_dict_list: 
        if article_dict.get("art_author")==article_author:
            article_dict_list.remove(article_dict)
            add_article(article_dict_list)
            return True
    return False


#继续删除文章
def re_delate_author_article(article_author):
    article_dict_list=read_article()
    ls=[]
    for article_dict in article_dict_list:
         if article_dict.get("art_author")==article_author:
             ls.append(article_dict)
    for i in ls:
        article_dict_list.remove(i)
        add_article(article_dict_list)
    return True


#删除所有文章
def delate_all_article():
    article_dict_list=read_article()
    article_dict_list.clear()
    add_article(article_dict_list)
    return True
     
    
        

def main():
    while True:
        p=input("请选择功能:1.注册2.登陆3.退出")
        
        if p=="1":
            username=input("请输入用户名:")
            bb=re_username(username)#用户名是否符合规范
            if bb==True:
                a=is_user_name(username)#用户名是否存在
                if a==True:
                    password=input("用户名可用,请输入密码:")
                    cc=re_password(password)#密码是否符合规范
                    if cc==True:
                        b=add_users(username,password)
                        if b==True:
                            print("注册成功")
                        else:
                            print("注册失败")
                    else:
                        print("密码只能是数字和字母或下划线组成")
                else:
                    print("用户名已存在")
            else:
                print("用户名不可用")
           
                
                
        elif p=="2":
            username2=input("请输入用户名:")
            password2=input("请输入密码:")
            c=is_username_and_password(username2,password2)
            if c==True:
                print("欢迎你%s登陆成功"%username2)
                while True:
                    pp=input("请选择功能1.发表文章2.查看文章3.删除文章4.返回上一级")
                    if pp=="1":
                        article_id=input("请输入文章编号:")
                        ax=is_article_id(article_id)
                        if ax==False:
                            article_title=input("请输入文章标题:")
                            article_author=input("请输入文章作者:")
                            article_cent=input("请输入文章内容:")
                            article_time=datetime.now().strftime("%Y{y}%m{m}%d{d}".format(y="年",m="月",d="日"))
                            s=add_articles({"art_id":article_id,"art_title":article_title,"art_author":article_author,"art_cent":article_cent,"art_time":article_time})
                            if s==True:
                                print("文章发表成功")
                            else:
                                print("文章发表失败")
                        else:
                            print("文章编号已经存在,请重新输入")

                            
                    elif pp=="2":
                        while True:

                            pl=input("请选择功能:1.编号查看文章2.作者查看文章3.查看所有文章4.返回上一级")
                            if pl=="1":
                                article_id=input("请输入文章编号:")
                                d=read_id_article(article_id)
                                if d!=None:
                                    print("文章编号:",d.get("art_id"))
                                    print("文章作者:",d.get("art_author"))
                                    print("文章标题:",d.get("art_title"))
                                    print("文章内容:",d.get("art_cent"))
                                    print("文章时间:",d.get("art_time"))
                                else:
                                    print("该文章编号不存在")


                            elif pl=="2":
                                author=input("请输入作者:")
                                e=read_author_article(author)
                                if e!=None:
                                    print("文章编号:",e.get("art_id"))
                                    print("文章作者:",e.get("art_author"))
                                    print("文章标题:",e.get("art_title"))
                                    print("文章内容:",e.get("art_cent"))
                                    print("文章时间:",e.get("art_time"))
                                    while True:
                                        pw=input("请选择功能:1.继续查询2.返回上一级")
                                        if pw=="1":
                                            print("继续查询")
                                            f=re_read_author_article(author)
                                            if f!=None:
                                                if len(f)==1:
                                                    print("该作者没有更多作品了")
                                                for i in range(1,len(f)):
                                                    print("文章编号:",f[i].get("art_id"))
                                                    print("文章作者:",f[i].get("art_author"))
                                                    print("文章标题:",f[i].get("art_title"))
                                                    print("文章内容:",f[i].get("art_cent"))
                                                    print("文章时间:",f[i].get("art_time"))
                                            else:
                                                print("该作者没有发表作品了")
                                        elif pw=="2":
                                            break
                                        else:
                                            print("暂未开通该功能")
                                else:
                                    print("该%s作者还没有作品"%article_author)
                                
                            elif pl=="3":
                                m=read_all_article()
                                if m==True:
                                    ...
                                else:
                                    print("还没有作品可以展示")
                                
                            elif pl=="4":
                                break
                            else:
                                print("暂未开通该功能")

                                
                    elif pp=="3":
                        while True:
                            px=input("请选择功能:1.根据编号删除文章2.根据作者删除文章3.删除所有文章4.返回上一级")
                            
                            if px=="1":
                                article_id=input("请输入文章编号")
                                f=delate_id_article(article_id)
                                if f==True:
                                    print("%s删除成功"%article_id)
                                else:
                                    print("该文章不存在或者删除失败")
                                    
                            elif px=="2":
                                article_author=input("请输入作者")
                                g=delate_author_article(article_author)
                                if g==True:
                                    print("删除成功")
                                while True:
                                    pd=input("请选择功能:1.继续删除2.返回上一级")
                                    if pd=="1":
                                        h=re_delate_author_article(article_author)
                                        if h==True:
                                            print("删除成功")
                                        else:
                                            print("该作者没有更多作品了")
                                            
                                    elif pd=="2":
                                        break
                                    else:
                                        print("该功能暂时未开通")




                                    
                                else:
                                    print("该%作者还没有作品删除失败"%article_author)

                            elif px=="3":
                                l=delate_all_article()
                                if l==True:
                                    print("删除成功")
                                else:
                                    print("删除失败")
                            elif px=="4":
                                break
                                print("返回上一级")
                            else:
                                print("该功能暂未开通")

                        
                    elif pp=="4":
                        print("返回上一级")
                        break
                    else:
                        print("暂未开通该功能")
                
            else:
                print("账号不存在或者密码输入错误")

                
        elif p=="3":
            break

        
        else:
            print("暂未开通该功能")
def main1():
    path1=r"G:\zhanghua\321.txt"
    path2=r"G:\zhanghua\文章信息.txt"
    if os.path.exists(path1) and os.path.exists(path2):
        pass
    else:
        add_path()
    main()
    

main1()
          

猜你喜欢

转载自blog.csdn.net/weixin_44253023/article/details/90199619