1. 程式人生 > >函式之-------------------------HR管理操作

函式之-------------------------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("沒有這項操作")