python图书管理系统参考文献_python-项目-图书管理系统(函数实现)

这是一个使用Python编写的简单图书管理系统,包括添加、读取、删除用户信息以及文章信息的功能。系统通过函数实现,对用户和文章进行操作,如密码验证、文章编号检查等。
摘要由CSDN通过智能技术生成

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()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值