作业员工信息表实现增删改查操作
Posted 东大网管
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作业员工信息表实现增删改查操作相关的知识,希望对你有一定的参考价值。
有以下员工信息表
当然此表你在文件存储时可以这样表示
1
|
1 ,Alex Li, 22 , 13651054608 ,IT, 2013 - 04 - 01 |
现需要对这个员工信息文件,实现增删改查操作
- 可进行模糊查询,语法至少支持下面3种:
- select name,age from staff_table where age > 22
- select * from staff_table where dept = "IT"
- select * from staff_table where enroll_date like "2013"
- 查到的信息,打印后,最后面还要显示查到的条数
- 可创建新员工纪录,以phone做唯一键,staff_id需自增
- 可删除指定员工信息纪录,输入员工id,即可删除
- 可修改员工信息,语法如下:
- UPDATE staff_table SET dept="Market" WHERE where dept = "IT"
注意:以上需求,要充分使用函数,请尽你的最大限度来减少重复代码!
yuangong文件
1,Alex Li,22,13651054608,IT,2013-04-01
2,Jack Wang,30,13304320533,HR,2015-05-03
3,Rain Liu,25,13832353221,Sales,2016-04-22
4,Mack Cao,40,13561453431,HR,2009-03-01
5,lzd,112,13912985190,IT,2019-1-1
代码如下:
# !/usr/bin/env python # -*- coding:utf-8 -*- # Author:lzd #创建字典 list=dict() #将文件导入到字典 with open(\'yuangong\',\'r\',encoding=\'utf-8\') as f: for i in f: j=i.split(\',\',1) list[j[0]]=j[1].strip().split(\',\') #print(list) #每次操作完毕都引用装饰器函数保存下文件 def baocun(func): def warpper(*args,**kwargs): func() with open(\'yuangong\', \'w\', encoding=\'utf-8\') as f: for i in list: f.write(i+\',\'+\',\'.join(list[i])+\'\\n\') print(\'文件保存成功!\\n\') return warpper def chaxun(): while True: # for i in list: # print(i,list[i]) print(""" 1、岁数 2、部门 3、入职年份 4、退出 """) tmpchaxun = input("请输入你想操作的步骤?直接输入数字即可。\\n") if tmpchaxun==\'1\' : tmpsuishu=input("请输入年龄,下面显示大于该年龄的员工:\\n") numm=0 if tmpsuishu.isdigit(): for i in list: if int(list[i][1])>int(tmpsuishu): print(list[i][0],list[i][1]) numm=numm+1 print("大于%s岁数一共有%s个人"%(tmpsuishu, numm)) else: print(\'年龄需要输入数字的,请重新输入\\n\') elif tmpchaxun==\'2\' : tmpbumen=input(\'请输入部门名称,下面显示该部门的所有员工:\\n\') numm=0 for i in list: if list[i][3] == tmpbumen: print(list[i]) numm=numm+1 print("该%s部门一共有%s个人"%(tmpbumen,numm)) elif tmpchaxun==\'3\' : tmpriqi=input(\'请输入员工入职年份,下面显示该年份的所有员工:\\n\') numm=0 if tmpriqi.isdigit(): for i in list: if tmpriqi in list[i][4]: print(list[i]) numm=numm+1 print("该%s年一共有%s个人" %(tmpriqi, numm)) else: print(\'年份需要输入数字的,请重新输入\\n\') elif tmpchaxun==\'4\': break else: print(\'请输入正确的数字。谢谢!\\n\') @baocun def chuangjian(): while True: tmpxinxi = input(\'请输入员工的“姓名/年龄/手机号码/部门/入职时间” ,请用/来间隔\\n\') xinxi=tmpxinxi.split(\'/\') if len(xinxi) != 5: print(\'输入的格式不正确请重新输入\\n\') continue elif xinxi[2].isdigit(): for kk in list.values(): if xinxi[2] in kk: print("手机号码重复啦~请重新输入!\\n") break else: tmpid=str(int(sorted(list)[-1])+1) list[tmpid]=xinxi print(\'用户添加完毕!\\n\') break else: print(\'手机号码输入错误~!\\n\') #print(list) @baocun def shanchu(): #print(\'shanchu\') while True: # for i in list: # print(i,list[i]) tmpshanchu=input(\'请输入你想删除的人员id号,退出请直接输入q\\n\') if tmpshanchu in list: del list[tmpshanchu] print(\'删除人员%s成功\\n\'%tmpshanchu) elif tmpshanchu==\'q\': break else: print(\'找不到这个人的id啊?你是不是输入错误了?\\n\') @baocun def xiugai(): #print(\'xiugai\') while True: # for i in list: # print(i,list[i]) tmpxiugai=input(\'请输入你想修改部门的名称,比如你想修改Market的人员变成IT部门,\\ 那么直接输入Market/IT,退出输入q\\n\') if tmpxiugai==\'q\': break bumen=tmpxiugai.split(\'/\') if len(bumen) !=2: print("输入格式不正确,请重新输入\\n") continue else: for i in list: if bumen[0] == list[i][3]: list[i][3]=bumen[1] print(\'部门修改完毕~!\\n\') while True: print(""" 1、查询 2、创建 3、删除 4、修改 5、退出 """) choosedic={1:chaxun,2:chuangjian,3:shanchu,4:xiugai} userchoose=int(input("请输入你想操作的步骤?直接输入数字即可。\\n")) if userchoose in choosedic: choosedic[userchoose]() elif userchoose==5: exit() else: print(\'请输入正确的数字\\n\')
以上是关于作业员工信息表实现增删改查操作的主要内容,如果未能解决你的问题,请参考以下文章