函数之-------------------------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("没有这项操作")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器