import os
def file_backups(file_name, path):
file_back = file_name.split('\\')[-1]
if os.path.isdir(file_name) is not True:
with open(file_name, mode='r') as file_data:
new_path = path + '/' + file_back
with open(new_path, 'w') as file_back:
for line_content in file_data.readlines():
file_back.write(line_content)
def judge(back_path, file_path):
if os.path.isdir(file_path) is True:
file_li = os.listdir(file_path)
for i in file_li:
new_file = file_path + '\\' + i
file_backups(new_file, back_path)
else:
if os.path.exists((file_path)):
file_backups(file_path, back_path)
else:
print("备份的文件不存在!")
exit()
def backups_catalog():
back_path = input("请输入备份的目录:\n")
file_path = input("请输入备份的文件:\n")
if os.path.exists(back_path) is False:
os.mkdir(back_path)
judge(back_path, file_path)
print('备份成功!')
else:
judge(back_path, file_path)
print('备份成功!')
if __name__ == '__main__':
backups_catalog()
"""
1.用户信息存储在文件中。
2.注册时判断用户是否已存在。
3.登录时比较用户的登录信息与文件中存储的信息是否一致。
(不使用正则,用文件读写函数和字符串操作相关知识实现)
4.注销
5.修改密码
"""
import os
def welcome():
print("欢迎使用账户管理程序")
print("1.用户注册")
print("2.用户登录")
print("3.用户注销")
print("4.修改密码")
print("5.退出")
while True:
option = input("请选择功能\n")
if option == '1':
register()
elif option == '2':
login()
elif option == '3':
cancel()
elif option == '4':
modify()
elif option == '5':
break
def convert_data():
info_li = []
with open('./info.txt', mode='r+', encoding='utf8') as f:
info_data = f.readlines()
for i in info_data:
info_dict = dict()
step_one = i.replace('{', '').replace('}', '')
step_two = step_one.split(':')
info_dict["姓名"] = step_two[1].split(',')[0].replace("'", '').strip()
info_dict["密码"] = step_two[2].replace("'", '').strip()
info_li.append(info_dict)
return info_li
def register():
if os.path.exists('./info.txt') is not True:
with open('./info.txt', mode='w', encoding='utf8') as f:
f.write('')
name_li = []
info_li = convert_data()
person_info = {}
name = input("请输入注册用户名:\n")
for i in info_li:
name_li.append(i['姓名'])
if name in name_li:
print('用户已注册')
else:
password = input("请输入注册密码:\n")
person_info['姓名'] = name
person_info['密码'] = password
with open('./info.txt', mode='a+', encoding='utf8') as info_data:
info_data.write(str(person_info) + '\n')
def login():
if os.path.exists('./info.txt') is not True:
print('当前无数据,请先注册')
else:
name_li = []
info_li = convert_data()
name = input("请输入登录用户名:\n")
password = input("请输入登录密码:\n")
for i in info_li:
name_li.append(i['姓名'])
if name in name_li:
modify_index = name_li.index(name)
if password == info_li[modify_index]['密码']:
print('登录成功')
else:
print('用户名或密码不正确')
else:
print('用户名或密码不正确')
def cancel():
if os.path.exists('./info.txt') is not True:
print('当前无数据,请先注册')
else:
cancel_name = input("请输入注销的用户\n")
cancel_password = input("请输入密码\n")
name_li = []
info_li = convert_data()
for i in info_li:
name_li.append(i['姓名'])
if cancel_name in name_li:
cancel_index = name_li.index(cancel_name)
if cancel_password == info_li[cancel_index]['密码']:
info_li.pop(cancel_index)
with open('./info.txt', mode='w+', encoding='utf8') as f:
f.write('')
for i in info_li:
with open('./info.txt', mode='a+', encoding='utf8') as info_data:
info_data.write(str(i) + '\n')
print('用户注销成功')
else:
print('用户名或密码不正确')
else:
print('注销的用户不存在')
def modify():
if os.path.exists('./info.txt') is not True:
print('当前无数据,请先注册')
else:
name_li = []
info_li = convert_data()
modify_name = input("请输入用户名:\n")
password = input("请输入旧密码:\n")
for i in info_li:
name_li.append(i['姓名'])
if modify_name in name_li:
modify_index = name_li.index(modify_name)
if password == info_li[modify_index]['密码']:
new_password = input("请输入新密码\n")
info_li[modify_index]['密码'] = new_password
with open('./info.txt', mode='w+', encoding='utf8') as f:
f.write('')
for i in info_li:
with open('./info.txt', mode='a+', encoding='utf8') as info_data:
info_data.write(str(i) + '\n')
else:
print("用户名或密码不正确")
else:
print("用户名或密码不正确")
if __name__ == '__main__':
welcome()