python函数模拟mysql增删改查功能
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增删改查功能的更多相关文章
- Django学习之mysql增删改查
上节介绍了如何使用命令行操作mysql增删改查,现在介绍如何使用python管理mysql 使用pip 下载完mysql后,mysql会以pymysql模块的形式存储在pycharm的包文件里.我们通 ...
- MySQL—增删改查,分组,连表,limit,union,alter,排序,去重
MySQL增删改查 在表格的增删改查中,查的内容是最多的,包括group by ,join,limit,union,alter,排序都是服务于查的 #sql语句数据行操作补充 #增加: #insert ...
- django学习-12.访问不同url/接口地址实现对指定数据的增删改查功能
1.前言 通过前面博客[django学习-10.django连接mysql数据库和创建数据表]里的操作,我们已经成功在数据库[hongjingsheng_project]里创建了一张数据表[hello ...
- IDEA搭建SSM实现登录、注册,数据增删改查功能
本博文的源代码:百度云盘/java/java实例/SSM实例/SSM实现登录注册,增删改查/IDEA搭建SSM实现登录,注册,增删改查功能.zip 搭建空的Maven项目 使用Intellij id ...
- BootstrapTable与KnockoutJS相结合实现增删改查功能
http://www.jb51.net/article/83910.htm KnockoutJS是一个JavaScript实现的MVVM框架.通过本文给大家介绍BootstrapTable与Knock ...
- springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能
转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包 数据库表 数据库表就不用教大家了,一张表,很简 ...
- 使用Bootstrap模态框实现增删改查功能
模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 本文实现的是使用模态框实现简单的增删改查的功能. ...
- 3.创建Manager类,演示对TestUser进行增删改查功能
接上一篇文章 创建NHibernateHelper帮助类,生成sessionFactory http://www.cnblogs.com/fzxiaoyi/p/8443587.html 创建个新的类M ...
- 基于gin的golang web开发:mysql增删改查
Go语言访问mysql数据库需要用到标准库database/sql和mysql的驱动.标准库的Api使用比较繁琐这里再引入另一个库github.com/jmoiron/sqlx. go get git ...
随机推荐
- Asteroids - poj 3041(二分图最大匹配问题)
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 17258 Accepted: 9386 Description Be ...
- Spring 核心组件工作原理简析
Spring Framework 的核心组件有三个: Spring Core,Spring Context 和 Spring Beans,它们奠定了 Spring 的基础并撑起了 Spring 的框架 ...
- OpenCV学习笔记七:opencv_nonfree模块
一,简介: 顾名思义,这个模块不是free的.主要包含: 1,SIFT implementation. The class implements SIFT algorithm by D. Lowe. ...
- HttpWatch使用教程
一 概述: HttpWatch强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功 ...
- python 数学操作符
优先级从高到低 print("2 ** 3 = %d" % 2 ** 3) 2 ** 3 = 8print("7 % 2 = {}".format(7 % 2) ...
- 爬虫实战【4】Python获取猫眼电影最受期待榜的50部电影
前面几天介绍的都是博客园的内容,今天我们切换一下,了解一下大家都感兴趣的信息,比如最近有啥电影是万众期待的? 猫眼电影是了解这些信息的好地方,在猫眼电影中有5个榜单,其中最受期待榜就是我们今天要爬取的 ...
- IIPP迷你项目(一)“Rock-paper-scissor-lizard-Spock”
0 前言——关于IIPP 本系列博客的内容均来自<An Introduction to Interactive Programming in Python (Part 1)>(在此我简称为 ...
- Using InfluxDB in Grafana,influxDB在grafana中使用
grafana带有功能丰富的数据源插件influxDB.支持丰富的查询编辑器.注释和templating(模版)查询. 增加数据源(Adding the data source) 点击顶部Grafan ...
- 取得当前页面的value值问题
取得当前输入input的值 <body> <form action=""> <input type="text" ...
- 使用 adb logcat 显示 Android 日志
本文为转载. 地址:http://www.hanshuliang.com/?post=32 eclipse 自带的 LogCat 工具太垃圾了, 开始用 adb logcat 在终端查看日志; 1. ...