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