python22期第五天 (数据库作业)

作业需求:

文件存储格式如下:
id,name,age,phone,job
1,Alex,22,13651054608,IT
2,Egon,23,13304320533,Tearcher
3,nezha,25,1333235322,IT

现在需要对这个员工信息文件进行增删改查。
基础必做:
a.可以进行查询,支持三种语法:
select 列名1,列名2,… where 列名条件
支持:大于小于等于,还要支持模糊查找。
示例:
select name, age where age>22
select * where job=IT
select * where phone like 133

进阶选做:

b.可创建新员工记录,id要顺序增加c.可删除指定员工记录,直接输入员工id即可
d.修改员工信息
语法:set 列名=“新的值” where 条件
#先用where查找对应人的信息,再使用set来修改列名对应的值为“新的值”

注意:要想操作员工信息表,必须先登录,登陆认证需要用装饰器完成
其他需求尽量用函数实现

 

作业:代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import fileinput
def get_id():     # 这个ID这能为select 提供使用
    """获取文件最后一行内容的ID记录到一个文件中"""
    with open('work_id.txt', mode='r+', encoding='utf-8') as f:
        num = f.read()
        return num



def select():
    msg = """
            请输入您要查询的数据--例子:
                1.select name,age,from work-info(表名) where age > 22
                2.select * from work-info(表名) where job = "IT"
                3.select * from work-info(表名) phone like "133"
        """


def add():
    print("输入name,age,phone,job信息添加员工信息" )
    wk_name=input("请输入您要添加的员工信息name:")
    wk_age = input("请输入您要添加的员工信息age:")
    wk_phone = input("请输入您要添加的员工信息phone:")
    wk_job = input("请输入您要添加的员工信息job:")
    number = int(get_id())
    number = number + 1
    if wk_age.isdigit() and wk_phone.isdigit():
        with open('worker-info', mode='a', encoding='utf8') as f1:
            f1.write("\n{},{},{},{},{}".format(number,wk_name,wk_age,wk_phone,wk_job))
            f1.close()
    else:
        print("请输入正确的数字:已经退出请重新输入:")
        # break
    with open('work_id.txt', mode='w', encoding='utf8') as f2:
        f2.write("{}".format(number))
        f2.close()



def pop():
    """只要输入id 删除整条,两个情况:删除最后一条id 删除非最后一个条"""
    pop_num = input("请输入你要删除员工信息的ID:")
    pop_num = int(pop_num)
    with open('worker-info', mode='r', encoding='utf-8') as f3:
        list = f3.readlines()
        f3.close()
    with open('worker-info', mode='w', encoding='utf-8') as f4:
        for line in list:
            if list[pop_num] in line:
                continue
            f4.write(line)


def update():
    pass



def check():
    """
    select name, age where age>22
    select * where job=IT
    select * where phone like 133
    利用where 分隔:age > 22
    利用select分隔:单行, 多行name, age  全部*
    循环 文件句柄
        筛选出符合条件 每行
    :return:
    """
    pass


while True:
    print('''
    请输入对应的数字对员工信息进行操作
    1,查询操作--select
    2,添加操作--insert
    3,删除操作--delete
    4,更新操作--update
    ''')
    num_k=input("请输入你要操作的号码:")
    if num_k.isdigit():
        if num_k == "1":
            select()
        elif num_k == "2":
            add()
        elif num_k == "3":
            pop()
        elif num_k == "4":
            update()

 

posted @ 2018-06-07 15:48  MR_dy  阅读(90)  评论(0)    收藏  举报