首页 > s9.16作业,员工信息表

s9.16作业,员工信息表

转载https://blog.csdn.net/qq_35883464/article/details/83151464

实现员工信息表

文件存储格式如下:

id,name,age,phone,job

1,Alex,22,13651054608,IT

2,Egon,23,13304320533,Tearcher

3,nezha,25,1333235322,IT

现在需要对这个员工信息文件进行增删改查。

不允许一次性将文件中的行都读入内存。

基础必做:

a.可以进行查询,支持三种语法:

select 列名1,列名2,… where 列名条件

支持:大于小于等于,还要支持模糊查找。

示例:

select name, age where age>22

select * where job=IT

select * where phone like 133

进阶选做:

b.可创建新员工记录,id要顺序增加

c.可删除指定员工记录,直接输入员工id即可

d.修改员工信息

语法:set 列名=“新的值” where 条件

#先用where查找对应人的信息,再使用set来修改列名对应的值为“新的值”

注意:要想操作员工信息表,必须先登录,登陆认证需要用装饰器完成

其他需求尽量用函数实现

---------------------

作者:陈宸-研究僧

来源:CSDN

原文:https://blog.csdn.net/qq_35883464/article/details/83151464

版权声明:本文为博主原创文章,转载请附上博文链接!

# 读取文件——
def get_line(filename):with open(filename,'r',encoding='utf-8') as f:for line in f:line = line.strip()line_lst = line.split(',')yield line_lst# 员工信息表
 
dic = { 'name':1,'id':0,'age':2,'phone':3,'job':4}def condition_filter(condition):'''条件_筛选'''condition = condition.strip()if '>' in condition:col,val = condition.split('>')val = val.strip()col = col.strip()g = get_line('userinfo')for line_lst in g:if int(line_lst[dic[col]]) > int(val):yield line_lstif '<' in condition:col,val = condition.split('<')val = val.strip()col = col.strip()g = get_line('userinfo')for line_lst in g:if int(line_lst[dic[col]]) < int(val):yield line_lstif '=' in condition:col,val = condition.split('=')val = val.strip()col = col.strip()g = get_line('userinfo')for line_lst in g:if int(line_lst[dic[col]]) == int(val):yield line_lstelse:print('没有符合条件的员工')def views(view_lst,staff_g):         # view_list = ['name','age']'''展示符合条件的员工信息'''if '*' in view_lst:view_lst = dic.keys()for staff_info in staff_g:    # staff_info已经拿到了正确的员工信息,是列表[1,Alex,22,13651054608,IT]for i in view_lst:print(staff_info[dic[i]],end=' ')print(' ')#接受用户信息——
ret = input('输入要搜索的员工信息:')
# ret = 'select age,name where age > 22'
view,condition = ret.split('where')
view = view.replace('select','').strip()
view_lst = view.split(',')
# print(view_lst,condition)
g = condition_filter(condition)
views(view_lst,g)
--------------------- 
作者:陈宸-研究僧 
来源:CSDN 
原文:https://blog.csdn.net/qq_35883464/article/details/83151464 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

转载于:https://www.cnblogs.com/saolv/p/10027550.html

更多相关:

  • 为了不想让竞争对手看到我们使用的服务器的技术细节,我们可以将线上运行的ATS修改为我们自己设置的名字以及相应的版本号。在线修改如下选项 traffic_line -s proxy.config.http.response_server_str -v pcs/1.0.1 traffic_line -s proxy.config.htt...

  • oracle 10g: PL/SQL User's Guide and Reference ---> 10 Handling PL/SQL Errors ---> Summary of Predefined PL/SQL Exceptions 系统预定义异常(有名字的错误代码):TOO_MANY_ROWS : SELECT INTO...

  • [0. 需求] 最近在粗略学习《C++ Primer 4th》的容器内容,关联容器的章节末尾有个很不错的实例。通过实现一个简单的文本查询程序,希望能够对C++的容器学习有更深的理解。由于是浅略探讨研究,高手可无视,各位读者发现有什么不妥的地方,请指教。 程序将读取用户指定的任意文本文件,然后允许用户从该文件中查找单词。查询的结果是该单...