Python-----简单的模拟博客园登陆

def userpw(set_name):
userpw_dic={}
with open(set_name,mode='r+',encoding='utf-8') as f:
for line in f:
username, password = line.strip().split('|')
userpw_dic[username] = password
return userpw_dic

def registered():
time = 3
userpw_dic = userpw('userpw_dic.txt')
while time > 0:
username = input('请输入账户(数字和字母)>>>').strip()
password = input('请输入密码(长度在6~14之间)>>>').strip()
if username.isalnum() and (6<=len(password)<=14) and (username not in userpw_dic):
with open('userpw_dic.txt',mode='a+',encoding='utf-8')as f:
f.write(f'{username}|{password}\n')
print('注册成功')
return True
time -= 1
print(f'注册失败,你还有{time}次数')
print('注册失败,退出程序')
return False

def login():
if status_dic:
print('账户已登陆,请先注销该账户再尝试!')
else:
time = 3
userpw_dic = userpw('userpw_dic.txt')
while time > 0:
username = input('请输入账户(数字和字母)>>>').strip()
password = input('请输入密码(长度在6~14之间)>>>').strip()
if userpw_dic.get(username) == password:
status_dic[username] = True
print('登陆成功')
return True
time -= 1
print(f'登陆失败,你还有{time}次数')
print('登陆失败,正在退出!')
return False

def wrapper(func):
def inner():
if status_dic:
func([i for i in status_dic][0])
else:
print('请用户先登陆')
if login():
func([i for i in status_dic][0])
else:
return False
return inner

@wrapper
def article(name):
print(f'欢迎{name}进入文章页面!')
while 1:
num = input('请选择[1.直接写入内容 2.导入md文件 3.退出文章页面]:').strip()
if num == '1':
essay_content = input('请输入[文件名|文件内容]>>>').strip()
essay, cotent = essay_content.split('|',1)
with open(essay, mode='w', encoding='utf-8') as f:
f.write(cotent)
print('写入成功!')
elif num == '2':
essay = input('请输入md文件的路径>>>').strip()
try:
with open(essay, mode='r', encoding='utf-8') as f1, open(essay.split('.')[0] + '.txt', mode='w', encoding='utf-8') as f2:
for line in f1:
f2.write(line)
print('导入成功')
except FileNotFoundError:
print('此路径不存在,请重新输入!')
elif num == '3':
break
else:
print('输入错误,请重新输入!')

@wrapper
def discuss(name):
print(f'欢迎{name}进入评论页面!')

@wrapper
def diary(name):
print(f'欢迎{name}进入日记页面!')

@wrapper
def collect(name):
print(f'欢迎{name}进入收藏页面!')

@wrapper
def logout(name):
status_dic.clear()
print(f'{name}登陆状态已注销!')

status_dic = {}
funcs = {1: login, 2: registered, 3: article, 4: discuss, 5: diary, 6: collect, 7: logout}
while True:
print('1.请登录\n2.请注册\n3.进入文章页面\n4.进入评论页面\n5.进入日记页面\n6.进入收藏页面\n7.注销账号\n8.退出整个程序')
num = input('请输入您的选择:').strip()
if num.isdecimal() and 0 < int(num) < 8:
ret = funcsint(num)
if ret == False:
break
elif num == '8':
print('正在退出程序!')
break
else:
print('输入有误,请重新输入!')

猜你喜欢

转载自www.cnblogs.com/hql1117/p/11106525.html