需求:

1.可进行模糊查询,语法至少支持下面3种:

1.select name,age from staff_table where age > 22

2.select  * from staff_table where dept = IT

3.查到的信息,打印后,最后面还要显示查到的条数

2.可创建新员工纪录,以phone做唯一键,staff_id需自增

3.可删除指定员工信息纪录,输入员工id,即可删除

4.可修改员工信息,语法如下:

1.UPDATE staff_table SET dept= 无 where dept = IT

注意:请输入正确的语句进行查询,否则会报错。

#_*_coding:utf-8_*_
import os
def fetch(data):
#查询语法一:select name,age from staff_table where age > 22
#查询语法二:select * from staff_table where dept = IT
data1 = data.split(" ")
directory = ["staff_id", "name", "age", "phone", "dept", "enroll-date"]
if data == ("select name,age from staff_table where age > %s" %(data1[7])):
with open("xinxi", encoding="utf-8") as f:
list = []
list1 = []
list2 = []
for line in f:
i = line.strip().split(",")
w = i[1]
e = i[2]
a = [w, e]
if e > data1[7]:
list2.append(a)
for i in list2:
print(i)
print("查询到 %s 条符合的信息" %len(list2))
else:
with open("xinxi", encoding="utf-8") as f:
list = []
for line in f:
i = line.strip().split(",")
q = i[0]
w = i[1]
e = i[2]
r = i[3]
t = i[4]
y = i[5]
if data == ("select * from staff_table where %s = %s" % (data1[5], i[(directory.index(data1[5]))])):
list.append(i)
else:
continue
for j in list:
print('.'.join(j))
print("查询到 %s 条符合的信息" %len(list))
return 0
def add(data):
#添加语法: name,age,phone,dept,enroll-date (例如:王新凯,22,11111111111,IT,2015-10-31)
data1 = data.split(",")
f= open("xinxi",encoding="utf-8")
all_list = []
list = []
phone_list = []
for line in f:
i = line.strip().split(",")
q = i[3]
phone_list.append(q) if data1[2] in phone_list:
print("手机号已存在")
f.close()
else:
f1 = open("xinxi", "r+", encoding="utf-8")
for line in f1:
lines = line.strip().split(",")
# print(lines)
list.append(lines)
i = line.strip().split(",")
w = str(int(list[-1][0]) + 1)
data1.insert(0, w)
print(data1)
data1 = ','.join(data1)
f1.write("\n")
f1.write(data1)
f1.close()
print("添加成功!!!")
def remove(data):
#删除语法:delete from staff_table where staff_id = 12
data1 = data.split(" ")
if data == ("delete from staff_table where staff_id = %s" %data1[6]):
with open("xinxi", encoding="utf-8") as f:
list = []
for line in f:
i = line.strip().split(",")
i1 = line.splitlines()
q = i[0]
if data1[6] == q:
i2 = ','.join(i1)
print(i2)
list.append(i)
a = i2
f = open("xinxi", encoding="utf-8")
f1 = open("back", "a+", encoding="utf-8")
for i in f:
if a in i:
i = i.replace(a, "").strip()
f1.write(i)
f1.flush()
f.close()
f1.close()
os.remove("xinxi")
os.rename("back","xinxi")
print("删除成功!!!")
return
def change(data):
#修改请输入(注意空格和没有引号):UPDATE staff_table SET dept = IT where dept = 运维
data1 = data.split(" ")
print(data1)
# a =','.join(data1[3])
# print(a)
directory = ["staff_id", "name", "age", "phone", "dept", "enroll-date"]
var = int(directory.index(data1[3]))
with open("xinxi", encoding="utf-8") as f,\
open("back","w",encoding="utf-8")as f1:
for line in f:
lines = line.strip()
print(lines)
if data1[5] in lines:
lines = lines.replace(data1[5],data1[9])
f1.write(lines)
f1.write("\n")
f1.flush()
os.remove("xinxi")
os.rename("back","xinxi")
print("修改成功!!!") if __name__ == "__main__":
msg = """
1:查询
2:添加
3:删除
4:修改
5:退出
"""
msg_dict = {
"": fetch,
"": add,
"": remove,
"": change,
"": exit,
}
while True:
print(msg)
choice = input("输入序号>>:")
if len(choice) == 0 or choice not in msg_dict: continue
if choice =='':break
data = input("请输入数据>>:").strip()
msg_dict[choice](data)

Python3.5 day4作业:对员工信息文件,实现增删改查操作。的更多相关文章

  1. C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。

    1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...

  2. Java使用DOM4J对XML文件进行增删改查操作

    Java进行XML文件操作,代码如下: package com.founder.mrp.util; import java.io.File; import java.util.ArrayList; i ...

  3. python文件实现增删改查操作

    # coding = utf-8 import os import json import re ''' 本程序旨在将练习基础知识部分,包括: 列表,元组,字典,文件,函数,字符串等知识 实现的功能: ...

  4. 老男孩Day4作业:员工信息查询系统

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

  5. MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存

    二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...

  6. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  7. 【练习】Python第四次:实现对文件的增删改查

    一,实现对文件的增删改查 (一),三级菜单的处理结构及退出技巧:使用TAG标记 tag=True while tag: print('leve1') choice=input("level1 ...

  8. 基于SpringMVC的文件(增删改查)上传、下载、更新、删除

    一.项目背景 摘要:最近一直在忙着项目的事,3个项目过去了,发现有一个共同的业务,那就是附件的处理,附件包括各种文档,当然还有图片等特殊文件,由于时间的关系,每次都是匆匆忙忙的搞定上线,称这项目的空档 ...

  9. 用dom4j解析xml文件并执行增删改查操作

    转自:https://www.aliyun.com/jiaocheng/1339446.html xml文件: <?xml version="1.0" encoding=&q ...

随机推荐

  1. setprecision **fixed

    #include <iostream> #include <iomanip> using namespace std; int main( void ) { const dou ...

  2. C#夯实基础之多线程一:初识多线程

    一. 烧水沏茶问题       在小学四年级有一个烧水沏茶问题,可以作为我们今天讨论话题的引子: 客人来了,要烧一壶茶,但是烧水需要5分钟,洗水壶需要1分钟,洗茶杯需要2分钟,接水需要1分钟,找茶叶需 ...

  3. ROW_NUMBER()与PARTITION BY 实例

    环境:SQL Server 2008 R2 数据表结构 SELECT A.* FROM [tbiz_AssScoreWeidu] A SELECT A.* ,ROW_NUMBER() OVER ( P ...

  4. mysql基础类型知识总结

    Mysql知识回顾 http://www.educity.cn/wenda/596225.html http://blog.csdn.net/dyllove98/article/details/928 ...

  5. Uiautomator-----新建工程

    一.前提: 安装好安卓开发环境:jdk.安卓SDK.ADT.ant.eclipse   配置环境   二.新建uiautomator工程 1.打开eclipse,新建一个工程(这个网上资料很多,大家自 ...

  6. Java基础高级二(多线程)

    1.进程和线程的区别:线程是轻量级的,本省不会持太多资源,需要的时候向进程申请 2.线程的状态:创建,可执行,执行中,等待,休眠,阻塞 3.线程状态之间的转换 4.线程API:Thread类,Runn ...

  7. mysqlDBA(1-3年)

    1.熟悉Aliyun操作系统的管理.配置和系统调优: 2.熟悉mysql管理 3.熟悉mysql主从复制,主主复制 4.熟悉数据库的备份策略,监控策略,性能测量策略 5.熟悉linux/unix操作系 ...

  8. Git版本控制管理学习笔记4-文件管理和索引

        可以认为使用Git时,我们会遇到3个空间:工作目录.索引.版本库.我们关心的,就是在新建.修改等操作时,这三者之间发生了怎样的变化.     笼统的讲,就是在工作目录下编辑,在索引中积累修改, ...

  9. PHPCMS_V9 模型字段添加单文件上传功能

    后台有“多文件上传”功能,但是对于有些情况,我们只需要上传一个文件,而使用多文件上传功能上传一个文件,而调用时调用一个文件URL太麻烦了. 使用说明: 1.打开phpcms\modules\conte ...

  10. 【My Life】写在年末, 我的2013

    [My Life]写在年末, 我的2013 SkySeraph Dec. 30  2013 Email:skyseraph00@163.com 好久没写博客了, 遗忘的历史,遗忘了自我... 岁月拾回 ...