登陆系统,打印 修改。用户数据

# 在一个文件里存多个人的个人信息,如以下
# 用户名 密码 年龄 职位 部门
# username password age position department
# alex abc123 24 Engineer IT
# rain df2@432 25 Teacher Teching


# 1.输入用户名密码,正确后登录系统 ,打印
# 1. 修改个人信息
# 2. 打印个人信息
# 3. 修改密码
# 2.每个选项写一个方法
# 3.登录时输错3次退出程序



# 一次行取出所有的文件内容,并且{'alex': ['alex', 'abc123', '24', 'Engineer', 'IT', '13188888888']}
def pick_up_all_info():
with open('persinfo', 'r', encoding='utf-8') as read_f:
user_dict = {}
for line in read_f:
user_lise = line.strip().split(',')
user_dict[user_lise[0]] = user_lise
return user_dict


# 接收pick_up_info传来的参数,打印用户信息
def print_info(all_user_info,name):
user_info = all_user_info[name]
msg = '''
--------------------
Name: %s
Age: %s
Job: %s
Dept: %s
Phone: %s
--------------------
'''%(user_info[2],
user_info[3],
user_info[4],
user_info[5],
user_info[6])
print(msg)


# 修改信息
def chang_info_to_file(all_user_info,name):
user_info = all_user_info[name]
msg = '''
1. Name: %s
2. Age: %s
3. Job: %s
4. Dept: %s
5. Phone: %s
'''%(user_info[2],
user_info[3],
user_info[4],
user_info[5],
user_info[6])

msg_dic = {
'1': user_info[2],
'2': user_info[3],
'3': user_info[4],
'4': user_info[5],
'5': user_info[6]
}
print(msg)
while True:
print('当前用户信息%s' % (' '.join(user_info)))
chioce = input('请选择要修改的选项 Q退出:').strip().upper()
if chioce.isalnum():
if chioce != 'Q'and chioce.isdigit():
print('current value:%s' % msg_dic[chioce])
revise_new = input('new value:').strip()
if revise_new:
user_info[int(chioce) + 1] = revise_new
else:
print('不能为空,或全是空格')
elif chioce == 'Q':
print('修改完成')
break
else:
print('输入有误请重新输入')
with open('persinfo','w',encoding='utf-8') as write_f:
for i in all_user_info:
user_str = ','.join(all_user_info[i])
write_f.write(user_str)
write_f.write('\n')


#修改密码
def chang_pwd(all_user_info,name):
user_info = all_user_info[name]
while True:
print('current password:%s'%user_info[1])
revise_new = input('new password:').strip()
revise_new_two = input('Confirm new password:').strip()
if not revise_new.isspace():
if revise_new == revise_new_two:
all_user_info[name][1] = revise_new
print('修改成功')
break
else:
print('密码输入不一致,请重新输入')
continue
else:
print('不能有空格存在')
continue
with open('persinfo','w',encoding='utf-8') as write_f:
for i in all_user_info:
user_str = ','.join(all_user_info[i])
write_f.write(user_str)
write_f.write('\n')


if __name__ == '__main__':
msg = '''
1:修改个人信息
2:打印个人信息
3:修改密码'''

msg_dic = {
'1': chang_info_to_file,
'2': print_info,
'3': chang_pwd
}
USER_DICT = pick_up_all_info()
name = None
# print(USER_DICT)
counte = 3
while counte > 0:
name = input('username:').strip()
pwd = input('password:').strip()
if name in USER_DICT:
if pwd == USER_DICT[name][1]:
print(('Welcome %s' % name).center(50, '-'))
break
else:
print('User Name or Password Force')
else:
print('User Name does not exist')
counte -= 1
else:
exit('谢谢使用')

while True:
print(msg)
chioce = input('请按编号选择要做的事情 Q退出:').upper().strip()
if chioce.isdigit():
msg_dic[chioce](USER_DICT, name)
if chioce == 'Q':
exit('谢谢使用')
else:
print('请正确输入')



#根据name取出指定的,用户信息。 上面代码用不到。
def pick_up_info(name,pwd):
    # 每次都需要打开文件进行判断,返回对应当前用户名的 所有信息\
    # {'peiqi': ['peiqi', '456', '26', 'Teacher', 'IT', '13188888888']}
    with open('persinfo', 'r', encoding='utf-8') as read_f:
        user_dict = {}
        tag = False  #用于判断是否有这个用户
        for line in read_f:
            user_li = line.strip().split(',')  #对读取到的字符串 去除\n 按 ,分割成列表
            if name in user_li:
                tag = True # 当文件中有这个用户时 tag=Ture
                if pwd == user_li[1]:
                    user_dict[user_li[0]] = user_li
                    break
                else:
                    print('账户名密码不对')
        else:
            if not tag:   #当文件中不存在输入的用户名时,就运行。
                print('用户不存在')
        return user_dict


猜你喜欢

转载自www.cnblogs.com/chengege/p/10219837.html
今日推荐