Chapter3.1.1 python函数小示例
来源:互联网 发布:mpacc研究生生活知乎 编辑:程序博客网 时间:2024/05/29 02:58
#函数例子
用python函数模拟mysql语句对以下文件进行操作
1,小吴吴,22,18022372331,销售,2013-11-022,王中王,32,18023257331,销售,2073-11-023,老周子,27,18012325732,销售,2013-11-024,小李子,23,18022546433,市场,2013-11-025,梁大大,42,18022564323,运营,2013-11-026,阿狗哥,32,18045662433,开发,2013-11-027,张码子,18,18031243593,技术,2013-11-388,李四弟,18,18033547293,运营,2013-11-239,李武弟,18,18031134593,管理,2013-11-2310,老板,18,11813456281,总裁,2014-11-0111,张大,18,18031145693,保安,2013-11-2312,张武,18,18031342493,采购,2013-11-2313,张六,18,18031456293,市场,2013-11-2314,张武,18,18031122293,It,2013-11-2315,老吴,15,18032111212,销售,2013-11-13
示例:
代码未实现所有功能
#!/usr/bin/env python# -*- coding:utf-8 -*-#Author:xp#blog_url: http://blog.csdn.net/wuxingpu5/article/details/71209731'''文件内容格式: id name age phone dep date1,小吴,22,180222333,运维,2013-11-02增删改查 模拟sql'''#-----------------文件读取-----------------------------------def open_tab(tab_name,enco='utf-8',mod='r'): '''读取表内容,放到字典中 ,用于查询等时候调用''' f = open(tab_name,encoding=enco,mode=mod) tab_info=[] for line in f.readlines(): line = line.split(',') tem_dict={ 'id':line[0], 'name':line[1], 'age':line[2], 'phone':line[3], 'dep':line[4], 'date':line[-1] } tab_info.append(tem_dict) print('all table information: ',tab_info) f.close() return tab_info#open_tab('db1\emp')#读取测试#--------------------查询---------------------file_name = 'db1\emp'file_tmp_name = 'db1\emp.swap'def sel_tab(tab_name,*args): '''传入参数进行查询 分* 和其他值2种情况返回''' tab_info = open_tab(tab_name) print('args is: ',args) for i in tab_info: for x in i.values(): if args == ('*',): res = tab_info print(res) exit() else: for item in args: if item == x: res = x print(res) return res#sel_tab(file_name,'小吴吴','王中王') #查询测试#=======================增加=======================def insert_tab(*args): '''追加函数''' f = open(file_name,encoding='utf-8',mode='a+') print(args) tab_id = len(open_tab(file_name)) + 1 targ = '' for i in args: targ = targ + ',' + str(i) targ_all = '\n'+ str(tab_id) + targ print(targ_all) f.writelines(targ_all) f.close()#insert_tab('张武',18,18031122293,'It','2013-11-23') #调用测试#---------------------删除-----------------------def del_tabinfo(arg1): '''删除函数''' import os with open(file_name,encoding='utf8',mode='r') as f, open(file_tmp_name,encoding='utf8',mode='w') as w: for line in f.readlines(): if line.startswith(arg1): line = '' w.writelines(line) os.remove(file_name) os.rename(file_tmp_name,file_name) pass#del_tabinfo('李四') #调用测试#--------------改--------------def update_tab(arg1,arg2): '''修改函数''' import os with open(file_name,encoding='utf8',mode='r') as f, open(file_tmp_name,encoding='utf8',mode='w') as w: for line in f.readlines(): if arg1 in line: line = line.replace(arg1,arg2) w.writelines(line) os.remove(file_name) os.rename(file_tmp_name, file_name)#update_tab('张三','张大妈') #调用测试#======================查询扩展函数体{def tab_list(arg1,arg2): '''查询列对应的值''' data=open_tab(file_name) for i in data: # print(i) v = i.get(arg1) # print(v) if v == arg2: res = i print(i) # return res#tab_list('name','王中王') 获取键值对应的列def tab_list_like(arg1,arg2): '''查询列对应的值''' data=open_tab(file_name) tab_li = [] for i in data: print(i) v = str(i.get(arg1,22)) print(v)# v = int(v) if str(arg2) in v: print(i)# print(i)#tab_list_like('date','2013') #获取键值对应的列def tab_list_big(arg1,arg2): '''查询列对应值的大小''' data = open_tab(file_name) for i in data: v = i.get(arg1) if int(v) > int(arg2): res = i print(arg1,'>',arg2,'的值是:',res) #return res#tab_list_big('age','24') #年龄比较测试def tab_list_small(arg1,arg2): '''查询列对应值的大小''' data = open_tab(file_name) for i in data: v = i.get(arg1) if int(v) < int(arg2): res = i print(arg1,'<',arg2,'的值是:',res) #return res#tab_list_small('age','24') #年龄比较测试 打印小的值#======================查询扩展函数体}#-------------------------------------------------------------------------def user_input(): '''等待用户输入 进行判断然后决定用哪个函数''' input_val = input('Please enter sql statement(请输入sql语句): ') input_val = input_val.lower() if input_val.startswith('insert'): new_in = input_val.split(' ') arg1 = new_in[-1] arg1 = arg1.split(',') arg1 = tuple(arg1) insert_tab(*arg1) elif input_val.startswith('delete'): new_in = input_val.split(' ') arg1 = new_in[-1] del_tabinfo(arg1) elif input_val.startswith('update'): in_val = input_val.split(' ') print(in_val) arg1 = in_val[5] arg2 = in_val[9] print(arg1,arg2) update_tab(arg1,arg2) elif input_val.startswith('select'): in_val=input_val.split(' ') print(in_val) arg1 = in_val[1] argx = in_val[-1] ax = in_val[-3] print(arg1) if '=' in input_val: # print('ax,argx is : ',ax,argx) tab_list(ax,argx) elif '>' in input_val: tab_list_big(ax,argx) elif '<' in input_val: tab_list_small(ax,argx) elif 'like' in input_val: tab_list_like(ax,argx) else: sel_tab(file_name,arg1) #sel_tab(file_name,arg1) else: print(''' Error grammar, please read the help documentation (语法错误,请阅读帮助文档) select name,age from staff_table where age > 22 select * from staff_table where dep = 运营 select * from staff_table where date like 2013 update staff_table set dep = 运维 where dep = 销售 delete * from table where id = 15 insert into table value 老吴,15,18032111212,销售,2013-11-13 ''') #查到的条数 #可以创建员工记录,以phone做唯一键,staff_id自增 #输入id 即可删除员工信息 #修改user_input() #最终测试'''select * from db1.empselect * from tabl limit 3 #前三行select * from db1.emp where id > 24select * from db1.emp where name like 李select * from db1.emp where id > 10 and id < 14 or name like 李select * from db1.emp not id > 24 #取反insert into db1.emp value 张三,30,1899999,运维,2015211delete from TABLE where id > 25 #显示删除成功update db1.emp set name = 'sb' where id = 24update table set name = 'alex' where name like sb'''
阅读全文
0 0
- Chapter3.1.1 python函数小示例
- Chapter3.1 Python函数(1)
- [Python入门]Chapter3 函数
- Chapter3.1.4python函数的参数
- Beginning Python - Chapter3 : Strings
- Beginning Python Chapter3
- python 核心编程Chapter3 Exercise
- Chapter3.1.2 函数的调用
- Python urlopen 使用小示例
- Python UDP编程小示例
- chapter3
- chapter3
- Python函数定义简单示例
- python的super函数示例
- Python小函数
- python -- 小函数
- Coursera课程Python for everyone:chapter3
- [Python for Data Analysis]Chapter3 --Ipython
- 凡是属性中有Set的都直接声明中直接new出来
- LeetCode 111 Minimum Depth of Binary Tree(DFS)
- 数据库杂谈之:如何优雅的进行表结构设计
- 拉链法
- Android 7.0 行为变更
- Chapter3.1.1 python函数小示例
- Google I O 2017 之Android开发特性
- urlconnection示例
- caffe GPU版本使用fcn分割自己的图像
- html img图片不变形等比例缩放,兼容ie6
- off_t undefined
- windowSoftInputMode属性详解
- 微信小程序横向左右滑动案例
- HTML+CSS要点总结