实现效果:
从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件。
效果演示:
1. 查询员工工资
2. 修改员工工资
3. 增加新员工记录
4. 退出
>>:1
请输入要查询的员工姓名(例如:Alex):Alex
Alex的工资是:100000。
1. 查询员工工资
2. 修改员工工资
3. 增加新员工记录
4. 退出
>>:2
请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10):Alex 10
修改成功!
1. 查询员工工资
2. 修改员工工资
3. 增加新员工记录
4. 退出
>>:3
请输入要增加的员工姓名和工资,共空格分割(例如:Eric 100000):Eric 100000
增加成功!
1. 查询员工工资
2. 修改员工工资
3. 增加新员工记录
4. 退出
>>:4
再见!
思路流程:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Tangj
add_list=[]
modify_list=[]
while True:
choice=input(" 1.查询员工工资 \n 2.修改员工工资 \n 3.增加新员工记录 \n 4.退出 \n 请选择>>")
if choice=='1':
with open("info.txt", 'r+', encoding="utf-8") as f:
name_salary = f.readlines()
account = input('请输入要查询的员工姓名(例如:Alex):')
for i in name_salary:
(name,salary)=i.strip('\n').split()
if account==name or account in add_list:
print('%s的工资是%s'%(name,salary))
break
else:
print('用户不存在')
elif choice=='2':
with open("info.txt", 'r+', encoding="utf-8") as f:
f_ch= f.readlines()
old_name=input('输入要修改的员工名字:')
for i in f_ch:
(name,salary) = i.strip('\n').split()
if old_name==name:
modify_name,modify_salary=input('请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10):').strip('\n').split()
modify_list.append([modify_name,modify_salary])#为了解决文件打开的时候不能更新信息的问题,在内存里加个表格
print(modify_list)
with open("info.txt", 'w', encoding="utf-8") as f1:
for item in f_ch:
item=item.replace(salary,modify_salary)
f1.write(item)
print('修改成功')
break
else:
print('用户不存在')
elif choice=='3':
f=open('info.txt','r+',encoding='utf-8')
f_add=f.readlines()
add_name=input('输入要添加的用户名称:')
for i in f_add:
(name,salary) = i.strip('\n').split()
if add_name==name or add_name in add_list:
print('不能添加已经存在的用户')
break
else:
append_name=input('请输入要增加的员工姓名和工资,使用空格分割(例如:Eric 100000):Eric 100000:').strip('\n')
add_list.append(append_name)
f.write(append_name)
f.write('\n')
f.flush()
f.close()
print('添加成功')
print(add_list)
pass
elif choice=='4':
print('程序已退出')
exit()
else:
print('无效选项')