源代码:

# 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. LR(1)语法分析器生成器(生成Action表和Goto表)java实现(一)

    序言 : 在看过<自己实现编译器链接器>源码之后,最近在看<编译器设计>,但感觉伪代码还是有点太浮空.没有掌握的感觉,也因为内网几乎没有LR(1)语法分析器生成器的内容,于是我 ...

  2. Linux系统关机与重新引导流程简介

    引言 在<Linux启动之旅>中,我们了解了Linux的启动过程,下面我们一同来学习Linux关机与重新引导流程. 不同于桌面系统,作为服务器,我们较少对Linux系统进行系统重启,但在以 ...

  3. 【0726 | Day 2】编程语言分类/主流编程语言介绍/网络的瓶颈效应

    编程语言分类 机器语言 与硬件交互 优点:执行效率高 缺点:开发效率低 汇编语言 间接与硬件交互 优点(相较于机器语言):开发效率高 缺点(相较于机器语言):执行效率低 高级语言 简单化指令,让人人都 ...

  4. python面试总结1(基础章节)

    python语言基础 语言特点 python是静态还是动态类型?是强类型还是弱类型 动态强类型语言 动态还是静态指的是编译期还是运作期确定类型 强类型指的是不会发生隐式类型转换 python作为后端语 ...

  5. bootstrap实战练习中涉及的知识点(很有用哦!)

    看的有关视频做的笔记,对bootstrap中涉及的知识点做了一定的解析,很有用哦!(新手上路,有不合适的地方可以指出哦!) 下面进入正题: Bootstrap是当下最流行的前端框架(界面工具集) 特点 ...

  6. Tomcat中文乱码问题

    新从官网下载的Tomcat7和Tomcat8,在运行的时候都会有乱码的问题,就此发现问题,我们就给它就地正法! 经过初步的分析,问题产生的大概原因是由于Tomcat的log日志模块不识别中文的问题, ...

  7. python语言特点简介 以及在Windows以及Mac中安装以及配置的注意事项

    正如前一篇随笔所提到的,python属于解释型语言 python语言有两个特点: 1.胶水语言(历史遗留问题,原来Perl语言作为Unix内置标准件,获得极大追捧,作为竞争者的python一开始是作为 ...

  8. webpack4 前端框架基础配置实例-解决css分离图片路径问题

    1.安装nodejs 2. 需要全局和项目安装webpack和webpack-dev-server npm install webpack webpack-dev-server -g npm inst ...

  9. 动图+源码,演示Java中常用数据结构执行过程及原理

    最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList Linke ...

  10. python+appium自动化测试(一)-----环境搭建

    基础背景: windows7系统 +python3.4版本 环境搭建目标: 使用python编写app自动化测试脚本并成功执行. 搭建步骤:   1.安装python3,安装步骤详见:https:// ...