修改个人信息 python_修改个人信息的程序
1.需要实现的功能
在一个文件里储存多个用户的个人信息,包含用户名、用户密码、年龄、职位、部门、手机号,用户数据结构如下:
yc,mima1234,25,master,biology,18771013309
jack,ycccycu,28,ceo,it,1312312314
rose,sad21312,23,model,art,213212421
输入用户名与密码,登陆系统,打印如下选项:
修改个人信息
打印个人信息
修改密码
退出程序
每个选项写一个方法
登陆输错3次,退出程序
2.程序流程简图:
3.程序源码
# -*- coding: utf-8 -*-
# 用户信息保存在UserList.txt中,格式为XX,XXXXXX,XXXXX用逗号分隔
# 被锁定的用名保存在LockList.txt中
import sys
import os
locked_user = open('LockList.txt','r+')
locked_name = locked_user.readlines()
def get_data(x): # 用来获取用户所有的信息表,并返回值
with open('UserList.txt', 'r') as user_file:
user_list = user_file.readlines()
user_file.close()
for user_line in user_list:
data_list = user_line.strip('\n').split(',')
user = data_list[0]
if user == x:
return data_list
else:
return False
def print_data(): # 用来打印用户信息的工具
data_list = get_data(username)
ifo = '''-------welcome to my city------
name: %s
age : %s
job : %s
Dept: %s
Phone: %s
''' % (data_list[0], data_list[2], data_list[3], data_list[4], data_list[5])
return print(ifo)
def change_data(x): # 用来修改用户信息的工具,包括修改密码
data_list = get_data(username)
f_name = 'UserList.txt'
f_new_name = "%s.new" % f_name
f = open(f_name, 'r+', encoding="utf-8")
f_new = open(f_new_name, 'w+', encoding='utf-8')
current_data = [data_list[0], data_list[2], data_list[3], data_list[4], data_list[5]]
if x == 1:
for index,item in enumerate(current_data):
print(index,item)
num = int(input('请输入你所需要更改的项目序号:'))
new_str = input('请输入你的新信息:')
current_data[num] = new_str # 进行内容的替换
current_data.insert(1, data_list[1])
else:
num = 1
new_str = input('请输入你的新信息:')
current_data.insert(1,new_str)
map(str, current_data)
str_line = ','.join(current_data)
for line in f.readlines():
old_list = line.strip('\n').split(',')
old_line = line.strip('\n')
current_user = old_list[0]
if current_user == username:
new_line = line.replace(old_line, str_line)
else:
new_line = line
f_new.write(new_line)
f.close()
f_new.close()
os.replace(f_new_name, f_name)
count = 0
while count < 3:
username = input("请输入你的用户名:")
for locked_line in locked_name:
if username == locked_line.strip('\n'):
print('该用户已被锁定')
sys.exit()
data_list = get_data(username)
if data_list:
passkey = data_list[1]
password = input("请输入你的密码:")
if password == passkey:
print("欢迎您的到来!")
# 进入用户信息修改功能
while True:
print('''
-------欢迎来的新世界-------
1.修改个人信息
2.打印个人信息
3.修改密码
4.退出程序
''')
choice = int(input('请输入你的选择:'))
if choice == 1:
change_data(1)
continue
elif choice == 2:
print_data()
continue
elif choice == 3:
change_data(3)
continue
else: # 输入其他选项将退出程序
sys.exit()
else:
count += 1
print("输入错误%s次,三次后将退出,并锁定用户!"%count)
if count == 3:
locked_user.write(username + '\n')
locked_user.close()
sys.exit()
break
else:
print("该用户不存在")
count += 1
continue
修改个人信息 python_修改个人信息的程序相关推荐
- 实现对学生信息的修改操作
返回目录:<学生信息管理系统(Java+JSP)> 本篇博客主要实现对学生信息的修改操作: 步骤1.在学生信息的显示页面(即student.jsp页面)中,在表格最后增加一列"修 ...
- 用户控件(显示用户信息,修改用户名密码)的WebPart预览版
*********************************************************************** * ...
- shell获取git最近一次提交信息_Git修改commit提交信息
当进行一次commit提交的时候,可以附带简短的信息说明,代码如下:[Shell] 纯文本查看 复制代码$ commit -m "蚂蚁部落提交" 在-m命令后面跟着的"蚂 ...
- php v9 如何获取超级管理员权限,phpcms v9 增加后台管理员其他权限角色可以查看信息不能修改信息...
phpcms v9 增加后台管理员其他角色可以查看信息不能修改信息 phpcms\modules\content\templates\content_list.tpl.php 这里面判断是不是管理员角 ...
- 修改git历史提交的commit信息
本文是基于idea的操作,亲测可用 前言: 很多公司都会自定义 Git - 使用强制策略,那么他的commit信息就会有固定的格式,一旦不是这个格式,就会出现push失败 但是push失败,很多也只在 ...
- 修改Visual Studio类模板注释信息
背景资料 在开发过程中,经常需要给新增的类和接口添加 public 修饰符和一些相关的注释信息,这个工作是机械而且枯燥的,这个可以通过修改VS自带的类模板来实现. 1.首先找到VS的安装目录,例如如下 ...
- 一级计算机考试修改信息书面申请表,医院信息科修改数据库申请单.doc
医院信息科修改数据库申请单 医院信息科修改数据库申请单 篇一:医院操作系统及数据库变更申请单 操作系统及数据库变更申请单 ※保持一致.在重装结束后必须到计算机部重新验收,经验收无问题方可重新开通使用. ...
- 网页html修改,对学生信息进行修改网页html代码.doc
对学生信息进行修改网页html代码 修改信息 QSsno=request.QueryString("sno") Fsname =request.form("sname&q ...
- 金色传说:SAP-ABAP-销售订单增强:记录销售订单修改信息和修改原因
业务场景 为了记录从客户或经销商询单到正式下达销售订单的过程并分析,需要记录销售订单创建和修改时的关键信息,其中包括:客户.物料.订单数量.交货日期.更改原因. 解决方案 创建销售订单时自动记录关键信 ...
最新文章
- 最短路径算法——Dijkstra and Floyd算法
- 挽救Centos7.0
- JAVAWEB入门之IDEA与tomcat相关配置
- restful soap_Web服务面试问题– SOAP,RESTful
- win10电脑黑屏只有鼠标箭头_电脑开机就黑屏,只显示鼠标怎么办?别急,简单几步,轻松解决!...
- CAS(Central Authentication Service)——windows上简单搭建及測试
- 当前日期增加自然月(比如当前时间为3月31号,加上1个月,预期结果是4月30日,但是输出了5月1日)...
- kb931125—rootsupd_kb931125-rootsupd补丁下载
- c语言程序设计网站有哪些,C语言编程软件有哪些?
- 查询vue版本时报错:“文件名、目录名或卷标语法不正确“
- mongoDB数据库mong.conf配置文件的问题
- html5 阿狸照片展示,阿狸手抄报美观简洁图片5张
- Android Vold架构
- 逼近理想解法TOPSIS(python程序)
- 奔涌的IPv6背后,DHCPv6协议你了解多少?
- 欧几里得算法及其python实现
- 天池竞赛-淘宝穿衣搭配(数据预处理部分)
- Java教程笔记(完)
- oracle的安装实验报告,Oracle实验报告Oracle实验报告.doc
- html 加载高德地图,vue异步加载高德地图
热门文章
- QtGuid4.dll处有未经处理的异常,0xsdddddd5写入位置错误
- RPG游戏《黑暗之光》流程介绍与代码分析之(八):装备系统的实现
- MYSQL做BCV备份数据库,每天定时自动备份方案与实现
- fullcalendar显示出勤日_FullCalendar 日历插件中文说明文档
- rocketMQ-消息队列
- (PC+WAP)蓝色玻璃纤维制品网站pbootcms模板 营销型环保设备网站源码下载
- 服务器远程桌面一直正在配置,win10系统无法远程一直显示“正在配置远程会话”的详细方法...
- Hadoop详解(三)——MapReduce原理和执行过程,远程Debug,Writable序列化接口,MapReduce程序编写
- inlinehook NtCreateFile
- Error creating bean with name ‘org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping#0‘