文件操作之登录注册系统
一、原理
三个提示登录、注册和退出,用户根据提示信息选择需要的功能:
1.选择登录:用户名和密码必须在information.txt里保存过,成功会提示登录成功!否则提示用户名或密码错误
2.选择注册:
用户名不能和已经存在的用户名重复,否则会提示用户名已存在;
用户名不存在会将输入的用户名和密码写入information.txt,下次登录就可以不用注册。
3.选择退出:‘输出退出操作!’
二、步骤
1.首先,打印提示登录、注册、退出的界面 - 从login文件中读出这些信息。
login.txt
=====================
♣1.登录
♣2.注册
♣3.退出
=====================
f = open('./files/login.txt', 'r', encoding='utf-8')
result = f.read()
print(result)
f.close()
2.登录注册操作前先读取用户信息并且对信息处理为单独的用户列表和密码列表。
已经存在的用户信息(information.txt)
username,password
小明,123456
小花,111111
# 2.登录注册前读取用户信息
f = open('./files/information.txt', 'r', encoding='utf-8')
result = f.readlines() # 以列表形式读
f.close()
# 读取之后处理信息
# 去掉空格去掉逗号,从列表的第一行之后开始处理
user_list = [i.replace('\n', '').split(',')[0] for i in result[1:]]
password_list = [i.replace('\n', '').split(',')[1] for i in result[1:]]
3.选择操作
choice = input('请输入你的选择:')
- 登录操作
if choice == '1':
username = input('请输入用户名:')
password = input('请输入密码:')
if username in user_list:
index1 = user_list.index(username) # 用户下标
# 对应下标的密码
if password == password_list[index1]:
print('登陆成功!')
break
else:
print('用户名或密码错误!')
else:
print('用户名或密码错误!')
- 注册操作
elif choice == '2':
# 使用追加写a
f = open('./files/information.txt', 'a', encoding='utf-8')
username = input('请输入用户名:')
# 判断用户名是否存在-不能重复
if username in user_list:
print('用户名已存在!')
else:
password = input('请输入密码:')
# 用逗号将username和password拼接起来。
f.write('\n' + ','.join([username, password]))
f.close()
print('注册成功!')
- 退出操作
elif choice == '3':
print('退出系统')
break
三、完整代码
# 1.读取登录界面文件
f = open('./files/login.txt', 'r', encoding='utf-8')
result = f.read()
print(result)
f.close()
while True:
# 2.登录注册前读取用户信息
f = open('./files/information.txt', 'r', encoding='utf-8')
result = f.readlines() # 以列表形式读
# print(result)
f.close()
# 3.读取之后处理信息
# 去掉空格去掉逗号,从列表的第一行之后开始处理
user_list = [i.replace('\n', '').split(',')[0] for i in result[1:]]
password_list = [i.replace('\n', '').split(',')[1] for i in result[1:]]
# print(user_list, password_list)
# 4.选择
choice = input('请输入你的选择:')
# 登录
if choice == '1':
username = input('请输入用户名:')
password = input('请输入密码:')
if username in user_list:
index1 = user_list.index(username) # 用户下标
# 对应下标的密码
if password == password_list[index1]:
print('登陆成功!')
break
else:
print('用户名或密码错误!')
else:
print('用户名或密码错误!')
# 注册
elif choice == '2':
# 使用追加写a
f = open('./files/information.txt', 'a', encoding='utf-8')
username = input('请输入用户名:')
# 判断用户名是否存在-不能重复
if username in user_list:
print('用户名已存在!')
else:
password = input('请输入密码:')
# 用逗号将username和password拼接起来。
f.write('\n' + ','.join([username, password]))
f.close()
print('注册成功!')
# 退出系统
elif choice == '3':
print('退出系统')
break
else:
print('输入错误,请重新输入!')