函数之-------------------------HR管理操作
import os import time def emplog(content): #记录操作的一个函数,在删除,添加,修改都会用到这一操作, f=open("emp.log",mode="a",encoding="utf-8") #所以就提取出来 f.write(content+"\n") f.flush() f.close() def tianjia(): while 1: id = input("请输入员工编号") #添加之前要判断员工编号是否已经存在 f=open("emp.db",mode="r",encoding="utf-8") for line in f: d=eval(line.strip()) if d["id"]==id: print("编号已存在,请重新输入") break # 存在就跳出循环 else: f=open("emp.db",mode="a",encoding="utf-8") #不存在走这边 name=input("请输入员工姓名") birthday=input("请输入员工生日") salary=input("请输入员工薪水") #把员工信息整合成一个字典 dic={"id":id,"name":name,"birthday":birthday,"salary":salary} f.write(str(dic)+"\n") #写入文件 f.flush() f.close() print("添加成功") #记录所进行的操作,必须在return之前,要不然不会记录 emplog("管理员在%s添加了一名员工,该员工信息为%s"%(time.strftime("%Y-%m-%d %H:%M:%S"),str(dic ))) return f.close() def chakan(): #查看看功能 f=open("emp.db",mode="r",encoding="utf-8") print("员工编号\t员工姓名\t员工生日\t员工薪水") for line in f: d=eval(line.strip()) #占位符的格式化输出 print("%s\t%s\t%s\t%s"%(d["id"],d["name"],d["birthday"],d["salary"])) #print(f"{d['empno']}\t{d['name']}\t{d['salary']}\t{d['birthday']}\t") #真正的格式化输出 f.close() def shanchu(): #删除员工信息 chakan() id=input("请输入你要删除的员编号") with open("emp.db",mode="r",encoding="utf-8") as f1,\ open("emp.db_副本",mode="w",encoding="utf-8") as f2: for line in f1: d=eval(line.strip()) if d["id"]==id: #删除要记录,也要在continue之前才会被记录到 emplog("管理员在%s删除了一名员工,该员工信息为%s" % (time.strftime("%Y-%m-%d %H:%M:%S"), str(d))) continue f2.write(str(d)+"\n") os.remove("emp.db") os.rename("emp.db_副本","emp.db") def xiugai(): #修改用工信息 id=input("请输入你要修改的员工的编号") f=open("emp.db",mode="r",encoding="utf-8") for line in f: #修改之前要判断员工是否存在 d = eval(line.strip()) if d["id"] == id: break #存在就跳出循环,进行修改操作 else : print("没有此员工") return f.close() salary=input("请输入员工新的薪水") with open("emp.db",mode="r",encoding="utf-8") as f1,\ open("emp.db_副本",mode="w",encoding="utf-8") as f2: for line in f1: d = eval(line.strip()) if d["id"] == id: d["salary"]=salary emplog("管理员在%s修改了一名员工,该员工信息为%s" % (time.strftime("%Y-%m-%d %H:%M:%S"),str(d))) f2.write(str(d)+"\n") os.remove("emp.db") os.rename("emp.db_副本","emp.db") while 1: menu=("添加员工信息","查看员工信息","删除员工信息","修改员工信息","退出") for i,j in enumerate(menu,1): print(i,j) option=input("请输入相应的编号进行操作") if option=="1": tianjia() elif option=="2": chakan() elif option=="3": shanchu() elif option=="4": xiugai() elif option=="5": print("系统退出") exit() else: print("没有这项操作")