import os list1 = [‘staff_id‘, ‘name‘, ‘age‘, ‘phone‘, ‘dept‘, ‘enroll_date‘] def staff_info(): #获取员工信息生成器函数 with open(‘staff_table.txt‘, ‘r‘, encoding=‘utf-8‘) as f: for line in f : x =line.split(‘,‘) staff_dic = {k: v for (k, v) in zip(list1,x)} yield staff_dic def select_func(select_content,start,middle,end): #查找函数 if middle == ‘=‘: middle = ‘==‘ if select_content == ‘*‘: content = list1 else: content = select_content.split(‘,‘) total_check = 0 for i in staff_info(): list = [] for j in content: list.append(i[j]) #查找需要列出的项 if middle == ‘like‘: l=len(end) if eval(i[start][:l] + ‘==‘ +end ): print(list) total_check+=1 else: s = i[start] e = end if eval("s"+middle+"e"): print(list) total_check+=1 print(‘相关查询共计%s‘%total_check) def insert_func(list): #添加功能函数,添加的内容以列表写入 with open(‘staff_table.txt‘,‘r+‘,encoding=‘utf-8‘) as f: #判断手机号是否重复,若重复报错退出 for line in f: if list[2] in line: print(‘err information‘) return #不重复的添加内容 f.seek(0) info=f.readlines() staff_id=info[-1].split(‘,‘) staff_id=int(staff_id[0])+1 f.seek(0,2) s=‘‘ for i in list: if type(i)==int: i=str(i) s=s+‘,‘+i f.write(str(staff_id)+s+‘\n‘) def delete_func(staff_id): #删除信息函数 with open(‘staff_table.txt‘,‘r+‘,encoding=‘utf_8‘) as f, open(‘new.txt‘,‘w‘,encoding=‘utf-8‘) as f1: for line in f: if staff_id == line[0]: line=‘‘ f1.write(line) os.remove(‘staff_table.txt‘) os.rename(‘new.txt‘,‘staff_table.txt‘) def modify_func(oldcontent,newcontent): #修改函数 with open(‘staff_table.txt‘,‘r+‘,encoding=‘utf_8‘) as f, open(‘new.txt‘,‘w‘,encoding=‘utf-8‘) as f1: for line in f: if oldcontent in line: line=line.replace(oldcontent,newcontent) f1.write(line) os.remove(‘staff_table.txt‘) os.rename(‘new.txt‘,‘staff_table.txt‘) def run_func(): #运行函数 while 1: cmd=input(‘>>>: ‘) if cmd == ‘quit‘: break else: cmd=cmd.split() if cmd[0] == ‘select‘: end=cmd[-1] start=cmd[-3] middle=cmd[-2] select_content=cmd[1] select_func(select_content,start,middle,end) elif cmd[0] == ‘insert‘: list=cmd[1].split(‘,‘) insert_func(list) elif cmd[0].lower() == ‘update‘: oldcontent=cmd[-1] newcontent=cmd[5] modify_func(oldcontent,newcontent) elif cmd[0] == ‘delete‘: staff_id=cmd[1] delete_func(staff_id) else: print(‘err input‘) run_func()
staff_table.txt 里的内容:
1,Alex Li,22,13651054608,IT,2013-04-012,Jack Wang,30,13304320533,HR,2015-05-033,Rain Liu,25,1383235322,Sales,2016-04-224,Mack Cao,40,1356145343,HR,2009-03-01 因能力有限,命令格式请遵循下列说明
- 查询命令格式:select age,name from satff_table where dept == IT/age > 20/其他条件
- 修改命令格式:update staff_table set dept = market where where dept = IT
- 增加命令格式:insert mona, 15, 13693041938, IT, 2016-09-04
- 删除命令格式:delete 1
时间: 2024-10-17 11:36:17