源代码:

# dict1 是 字典 , 用来对应相应元素的下标,我们将文件转成列表,对应的也就是文件的下标,通过下标来找文件元素

dict1 = {'sort':0 , 'name':1 ,'age':2 ,'phone':3 ,'job':4 }

#将最后需要打印的信息转成列表的形式def p_message(m1):   if '*' in m1:       m1 = dict1.keys()       return m1   m1 = m1.split(',')   for i in range(len(m1)):       m1[i] =m1[i].strip()   return m1

#遍历文件信息,将其转化成列表的形式#将函数转化成生成器,好处是不用一次将文件信息全部传入内存,而是用多少传多少def op_file(m2):    m2 = m2.strip()    with open(m2 ,encoding='utf=8')as f:        for line in f:            line = line.strip()            line = line.split(',')            yield line

#进行条件筛选def choose(pp1 ,m3):    lis = []    m3 = m3.strip()    if '>' in m3:        c1 ,c2 = m3.split('>')        c1 = c1.strip()        c2 = c2.strip()        g = op_file(m2)        for line_lis in g:            if  int(line_lis[dict1[c1]]) > int(c2):                li = []                for l_list in pp1:                    li.append(line_lis[dict1[l_list]])                lis.append(li)        for i in lis:            print(i)    if '<' in m3:        c1,c2 = m3.split('<')        c1 = c1.strip()        c2 = c2.strip()        g = op_file(m2)        for line_lis in g:            if int(line_lis[dict1[c1]]) < int(c2):                li = []                for l_list in pp1:                    li.append(line_lis[dict1[l_list]])                lis.append(li)        for i in lis:            print(i)    if '=' in m3:        c1, c2 = m3.split('=')        c1 = c1.strip()        c2 = c2.strip()        g = op_file(m2)        for line_lis in g:            if c2 in line_lis[dict1[c1]]:                li = []                for l_list in pp1:                    li.append(line_lis[dict1[l_list]])                lis.append(li)        for i in lis:            print(i)

#分析输入的条件信息while 1:    message = input('>>>')    # message = 'select name ,age from info where age > 22 '    # m1 : 我们所要最后打印的信息  m2 : 文件名  m3 : 筛选条件    m1 , m3 = message.split('where')    m1 , m2 = m1.split('from')    m1 = m1.replace('select',' ').strip()

    #pp1 是 修改完的m1    pp1 = p_message(m1)    op_file(m2)    choose(pp1 ,m3)

文件内容:
1,Alex,22,13651054608,IT2,Egon,23,13304320533,Tearcher3,nezha,25,1333235322,IT
 

Python数据库小程序的更多相关文章

  1. 一个python爬虫小程序

    起因 深夜忽然想下载一点电子书来扩充一下kindle,就想起来python学得太浅,什么“装饰器”啊.“多线程”啊都没有学到. 想到廖雪峰大神的python教程很经典.很著名.就想找找有木有pdf版的 ...

  2. python 购物车小程序

    python 购物车小程序 功能要求:1.启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表2.允许用户根据商品编号购买商品3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒4. ...

  3. appium+python 微信小程序的自动化

    sudo kill -9 $(lsof -i:8889 -t) mitmweb -p 8889 -s addons.py mitmdump -q  -p 8889 -s addons.py http: ...

  4. Python基本小程序

    目录 Python基本小程序 一.筛选从1-100所有的奇数 二.筛选从0-100所有的偶数 三.求1-100之间所有的偶数和,奇数和 四.三个数由小到大输出 五.四个数字重复数字的三位数 Pytho ...

  5. 【python】——小程序之电话薄

    初学python,写一个小程序练习一下.主要功能就是增删改查的一些功能.主要用到的技术:字典的使用,pickle的使用,io文件操作.代码如下: import pickle #studentinfo ...

  6. 适合新手的Python爬虫小程序

    介绍:此程序是使用python做的一个爬虫小程序  爬取了python百度百科中的部分内容,因为这个demo是根据网站中的静态结构爬取的,所以如果百度百科词条的html结构发生变化 需要修改部分内容. ...

  7. Python UDP小程序

    为了做UDP的测试,采用了nc和Python的服务器端. nc的安装和使用: yum install -y nc nc -vuz Python的UDP服务器端小程序: # -*- coding: UT ...

  8. 40个Python入门小程序

    有不少同学学完Python后仍然很难将其灵活运用.我整理 37 个Python入门的小程序.在实践中应用Python会有事半功倍的效果. 分享 Github 项目,里面收集了 Python 学习资料 ...

  9. python获取小程序手机号并绑定

    最近在做小程序开发,在其中也遇到了很多的坑,获取小程序的手机号并绑定就遇到了一个很傻的坑. 流程介绍 官方流程图 小程序使用方法 需要将 <button> 组件 open-type 的值设 ...

随机推荐

  1. 4、一个打了鸡血的for循环(增强型for循环)

    对于循环,我们大家应该都不陌生,例如do-while循环,while循环,for循环,今天给大家介绍一个有趣的东西——打了鸡血的for循环(增强型for循环). 首先看代码,了解一下for循环的结构: ...

  2. MyBatis 二级缓存全详解

    目录 MyBatis 二级缓存介绍 二级缓存开启条件 探究二级缓存 二级缓存失效的条件 第一次SqlSession 未提交 更新对二级缓存影响 探究多表操作对二级缓存的影响 二级缓存源码解析 二级缓存 ...

  3. html的一些基本属性介绍

    一.html的属性类型: 1.常见标签属性: a.<h1>:align对其方式      例如:<h1  align="right"> hhhhh</ ...

  4. 简单设计企业级JOB平台

    前言 在企业级项目中有许多能够用到定时任务的场景例如: 在某个时间点统一给某些用户发送邮件信息 接口表数据发送 某月某日更新报表数据 ...... 目前我们使用SpringBoot快速整合Quartz ...

  5. MVC+EF Core 完整教程20--tag helper详解

    之前我们有一篇:“动态生成多级菜单”,对使用Html Helper做了详细讲述,并且自定义了一个菜单的 Html Helper: https://www.cnblogs.com/miro/p/5541 ...

  6. 测试自动化:java+selenium3 UI自动化(2) - 启动Firefox

    1. selenium和浏览器 基于selenium的这套自动化体系,其实现关键就在于对于各浏览器的顺畅操作. 事实上当selenium刚开始起家的时候,他使用的还是javascript注入的方式来驱 ...

  7. Java一个简单的文件工具集

    class FileUtils { //文件目录下文件总数目 public static int fileNumber(File dir) { int filenumber = 0; if(dir.e ...

  8. 树莓派dht11,土壤湿度传感器,继电器的使用。树莓派云灌溉(二)

    关于传感器的一些说明 我的想法是这样的 我尽量用易于理解的语言去说我的想法 首先,土壤湿度传感器和dh11会获取数据,然后树莓派会处理这些数据,读出土壤温湿度和空气温湿度,并将这些数据上传到云服务器, ...

  9. Unable to load template file 'rj\ThinkPHP/Tpl/dispatch_jump.tpl'----thinkphp3.2.3

    Unable to load template file 'rj\ThinkPHP/Tpl/dispatch_jump.tpl'----thinkphp3.2.3 1.报错原因:将thinkphp默认 ...

  10. web 上读取图片,并转化为指定格式

    一. 转换为 base64 public static string ObtainBase64FromWeb(string domain, string path) { string url = &q ...