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-01
2,Jack Wang,30,13304320533,HR,2015-05-03
3,Rain Liu,25,1383235322,Sales,2016-04-22
4,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

python函数模拟mysql增删改查功能的更多相关文章

  1. Django学习之mysql增删改查

    上节介绍了如何使用命令行操作mysql增删改查,现在介绍如何使用python管理mysql 使用pip 下载完mysql后,mysql会以pymysql模块的形式存储在pycharm的包文件里.我们通 ...

  2. MySQL—增删改查,分组,连表,limit,union,alter,排序,去重

    MySQL增删改查 在表格的增删改查中,查的内容是最多的,包括group by ,join,limit,union,alter,排序都是服务于查的 #sql语句数据行操作补充 #增加: #insert ...

  3. django学习-12.访问不同url/接口地址实现对指定数据的增删改查功能

    1.前言 通过前面博客[django学习-10.django连接mysql数据库和创建数据表]里的操作,我们已经成功在数据库[hongjingsheng_project]里创建了一张数据表[hello ...

  4. IDEA搭建SSM实现登录、注册,数据增删改查功能

     本博文的源代码:百度云盘/java/java实例/SSM实例/SSM实现登录注册,增删改查/IDEA搭建SSM实现登录,注册,增删改查功能.zip 搭建空的Maven项目 使用Intellij id ...

  5. BootstrapTable与KnockoutJS相结合实现增删改查功能

    http://www.jb51.net/article/83910.htm KnockoutJS是一个JavaScript实现的MVVM框架.通过本文给大家介绍BootstrapTable与Knock ...

  6. springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能

    转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包     数据库表 数据库表就不用教大家了,一张表,很简 ...

  7. 使用Bootstrap模态框实现增删改查功能

    模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 本文实现的是使用模态框实现简单的增删改查的功能. ...

  8. 3.创建Manager类,演示对TestUser进行增删改查功能

    接上一篇文章 创建NHibernateHelper帮助类,生成sessionFactory http://www.cnblogs.com/fzxiaoyi/p/8443587.html 创建个新的类M ...

  9. 基于gin的golang web开发:mysql增删改查

    Go语言访问mysql数据库需要用到标准库database/sql和mysql的驱动.标准库的Api使用比较繁琐这里再引入另一个库github.com/jmoiron/sqlx. go get git ...

随机推荐

  1. Android startActivity()和onActivityResult()使用总结(转载)

    有三个Activity: A.java ,B.java ,C.java Activity之间的跳转常用方法: 1. startActivity(Intent intent); 该方法只用于启动新的Ac ...

  2. 【转】 详细介绍windows下使用python pylot进行网站压力测试

    windows下使用python进行网站压力测试,有两个必不可少的程序需要安装,一个是python,另一个是pylot.python是一个安装软件,用来运行python程序,而pylot则是pytho ...

  3. 【转】Web前端开发:为何选择MVVM而非MVC

    在Web中充斥着所谓的MVC框架,而在我看来,因为一些关键性的技术原因,MVC在Web前端开发中根本无法使用(对的,是无法,而不是不该) 在Web中充斥着所谓的MVC框架,而在我看来,因为一些关键性的 ...

  4. apache2+svn Cannot load modules/mod_dav_svn.so into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3

    按照svn里的readme文件安装配置apache2与svn后, 启动apache2服务的时候 出现下面的问题 Cannot load C:/Program Files/Apache Software ...

  5. day21 os random 序列json

    一.random模块     import random # print(random.random()) #0到1之间数 # print(random.uniform(10,20)) #范围内小数 ...

  6. windows 下XAMPP 使用Nginx替代apache作为服务器

    说实话, 在windows下使用Nginx 着实有点不太方便, 但因项目需求, 又不想换系统(虽然可以搞个虚拟机玩), 只能用Nginx了 好了, 不多说了. 开始... 首先我用的是xampp包(A ...

  7. python的OS库和正则表达式库

    摘自:http://blog.chinaunix.net/uid-16360955-id-3351990.html 作留存学习 1.常用内置函数:(不用import就可以直接使用) help(obj) ...

  8. SQL Server 2008中如何为XML字段建立索引

    from:http://blog.csdn.net/tjvictor/article/details/4370771 SQL Server中的XML索引分为两类:主XML 索引和辅助XML索引.其中辅 ...

  9. Java StuNote 1

    1. JAVA语言历史 无心插柳柳成荫,有心栽花花不开. JAVA由SUN Microsystem公司研发. 2. JAVA语言特点 a) 跨平台.一次编译.到处执行. b) 速度慢.但非常稳定, 没 ...

  10. windows Objective-C模拟环境搭建

    安装GNUstep GNUstep Windows Installer提供了Windows平台下的Objective-C的模拟开发环境,一共有四个软件包,其中GNUstep System和GNUste ...