转载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_lst 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_lst 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_lst else:
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
版权声明:本文为博主原创文章,转载请附上博文链接!

s9.16作业,员工信息表的更多相关文章

  1. day12 python作业:员工信息表

    作业要求: 周末大作业:实现员工信息表文件存储格式如下:id,name,age,phone,job1,Alex,22,13651054608,IT2,Egon,23,13304320533,Tearc ...

  2. python作业员工信息表程序(第四周)

    作业需求: 1. 员工信息表程序,实现增删改查操作: 2. 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 ...

  3. python基础之员工信息表作业

    周末大礼包 文件存储格式如下: id, name, age, phone, job 1, Alex, 22, 13651054608, IT 2, Egon, 23, 13304320533, Tea ...

  4. 无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]

    无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一 ...

  5. python练习题-员工信息表

    周末大作业:实现员工信息表文件存储格式如下:id,name,age,phone,job1,Alex,22,13651054608,IT2,Egon,23,13304320533,Tearcher3,n ...

  6. python-查询员工信息表

    python查询员工信息表 基本要求: 用户可以模糊查询员工信息 显示匹配了多少条,匹配字符需要高亮显示 代码: #!/usr/env python #coding:utf-8 import time ...

  7. python-打印简单公司员工信息表

    python-打印简单公司员工信息表 要求,输入name不为空,输入次数最多3次,3次后跳出程序: 知识点: raw_input str转int whil if elif else continue ...

  8. python3 员工信息表

    这是最后一条NLP了......来吧 十二,动机和情绪总不会错,只是行为没有效果而已 动机在潜意识里,总是正面的.潜意识从来不会伤害自己,只会误会的以为某行为可以满足该动机,而又不知道有其他做法的可能 ...

  9. python's sixteenth day for me 员工信息表

    import os user_dic = { 'username':None, 'password':None, 'login':True } flag = False name_list = ['i ...

随机推荐

  1. Java 接口篇

    为什么使用接口? 问题 要求实现防盗门的功能 分析 门有开和关的功能,锁有上锁和开锁的功能 将门和锁分别定义为抽奖类 那么问题就是防盗门即继承了门的同时又继承了锁,而Java的继承是单继承,接口可多继 ...

  2. coockie 和 session

    一.Cookie Cookie的数据是由客户端来保存和携带的,所以称之为客户端技术. 1.属性: name:名称不能唯一确定一个Cookie.路径可能不同. value:不能存中文. path:默认值 ...

  3. TODO monkey笔记,PC端执行和手机端执行

    微博不给力啊 吞我笔记,还好我有txt... 1.环境准备:安装Android sdk, 配置环境变量:platfrom_tools,tools,aapt;java:2.查询当前apk信息: aapt ...

  4. 桌面面板和内部窗体JDeskPane、JInternalFrame

    桌面面板和内部窗体JDeskPane.JInternalFrame,内部窗体必须在桌面面板里. import javax.swing.*; import java.awt.*; public clas ...

  5. emacs简易配置

    (setq-default inhibit-startup-message t tab-width 4 c-basic-offset 4 indent-tabs-mode t) (tool-bar-m ...

  6. (sort 排序)P1583 魔法照片 洛谷

    题目描述 一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人.佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i].然后将初始权值从大到小进行排序 ...

  7. vue @blur v-model数据没有更新问题

    今天遇到一个问题,是一个输入框绑定了一个失去焦点事件,要发送一个客户填写的数据给后台查询然后拿到返回值把它渲染到页面上,但是从后台获取到的数据却没有在页面上渲染出来,console.log打印时显示数 ...

  8. Jenkins自动化部署war项目

    基于上一篇Jenkins安装环境,下面对自动打包部署做个备忘 1.安装:Publish over SSH 插件 2.安装完成后,进入下图配置 ↓↓↓ 3.翻到底下↓↓↓ 找到刚刚安装的Publish ...

  9. Dubbo服务启动脚本

    ## /usr/wangfajun/service/user #!/bin/sh ## java env export JAVA_HOME=/usr/java/jdk1..0_79 export JR ...

  10. Ubuntu 开启SSH服务以及有关设置:安装,指定端口号、免密登录、远程拷贝

    本文所用系统为 Ubuntu 18.04   什么是SSH?     简单说,SSH是一种网络协议,用于计算机之间的加密登录.全名为:安全外壳协议.为Secure Shell的缩写.SSH为建立在应用 ...