Python3.5 day4作业:对员工信息文件,实现增删改查操作。
需求:
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作业:对员工信息文件,实现增删改查操作。的更多相关文章
- C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。
1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...
- Java使用DOM4J对XML文件进行增删改查操作
Java进行XML文件操作,代码如下: package com.founder.mrp.util; import java.io.File; import java.util.ArrayList; i ...
- python文件实现增删改查操作
# coding = utf-8 import os import json import re ''' 本程序旨在将练习基础知识部分,包括: 列表,元组,字典,文件,函数,字符串等知识 实现的功能: ...
- 老男孩Day4作业:员工信息查询系统
1.作业需求: (1).工信息表程序,实现增删改查操作: (2).可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where ...
- MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存
二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...
- MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存
目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...
- 【练习】Python第四次:实现对文件的增删改查
一,实现对文件的增删改查 (一),三级菜单的处理结构及退出技巧:使用TAG标记 tag=True while tag: print('leve1') choice=input("level1 ...
- 基于SpringMVC的文件(增删改查)上传、下载、更新、删除
一.项目背景 摘要:最近一直在忙着项目的事,3个项目过去了,发现有一个共同的业务,那就是附件的处理,附件包括各种文档,当然还有图片等特殊文件,由于时间的关系,每次都是匆匆忙忙的搞定上线,称这项目的空档 ...
- 用dom4j解析xml文件并执行增删改查操作
转自:https://www.aliyun.com/jiaocheng/1339446.html xml文件: <?xml version="1.0" encoding=&q ...
随机推荐
- Repeater、地址栏传值、Response--2016年12月30日
Repeater Repeater支持以下5种模板 ● ItemTemplate : 对每一个数据项进行格式设置 [Formats each item from the data sou ...
- Ubuntu14.04更新源、安装chrome/搜狗输入法
目录: 1.更新源 2.安装chrome 3.安装搜狗输入法 1.更新源 三步: cp /etc/apt/sources.list /etc/apt/sources.list_backup ...
- appium 滑动
前些日子,配置好了appium测试环境,至于环境怎么搭建,参考:http://www.cnblogs.com/tobecrazy/p/4562199.html 知乎Android客户端登陆:htt ...
- DIR 按文件名中数字大小进行排序
@echo off set arg=%1 if "%arg%" == "" set arg=* if "%arg%" == "-h ...
- 创建Odoo8数据库时的“new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)“问题
Odoo8创建数据库时,显示如下错误信息: DataError: new encoding (UTF8) is incompatible with the encoding of the templa ...
- 文件上传大小js判断
function fileChange(target) { var fileSize = 0; if (isIE && !target.files) { var filePath = ...
- javaScript判断浏览器类型
<script type="text/javascript"> function getBrowserInfo(){ var OsObject=navigator.us ...
- “div+css”下拉菜单
<style> html, body { margin: 0; padding: 0; } .btn-group{ font-size: 14px; position: relative; ...
- sql字段属性
- 初识node.js
Node.js不是一种语言:不是框架:也不是工具.它是用于运行基于JavaScript应用程序的运行时环境.