day4作业之信息表

实在是太low了,终究是自己写的,记录下

#!/usr/bin/env python
# coding=utf8
import os, re
#这里我把查询这块分为3个函数了,纠结了很久是放一起还是分开,最后还是分开了,容易写一些
def search_age_above_22():   #定义年纪大于22岁函数
    new = []  # 把读取到的文件写入至此列表
    temp = []  # 记录查询年龄大于22岁的总数列表

    with open("Information.txt", "r", encoding="utf8") as file:
        for line in file.readlines():
            new.append(line.strip().split(","))
        for each_line in new:
            if each_line[2] > "22":
                temp.append(each_line[2])
                print(each_line[1:3])
        print("查到年龄大于22岁的总数为:%s" % len(temp))

def search_depot_of_IT():  #定义部门为IT的函数
    new = []  # 把读取到的文件写入至此列表
    temp = []  # 记录查询部门为IT的总数列表
    with open("Information.txt", "r", encoding="utf8") as file:
        for line in file.readlines():
            new.append(line.strip().split(","))
        for each_line in new:
            if each_line[4] == "IT":
                temp.append(each_line[4])
                print(str(each_line[::]))
        print("查到部门为IT的总数为:%s" % len(temp))

def search_date_of_2013():  #定义开始工作日期为2013年的函数
    new = []  # 把读取到的文件写入至此列表
    temp = []  # 记录查询开始工作日期为2013年的总数列表
    with open("Information.txt", "r", encoding="utf8") as file:
        for line in file.readlines():
            new.append(line.strip().split(","))
    for each_line in new:
        if re.search("2013", each_line[-1]):
            temp.append(each_line[5])
            print(each_line[::])
    print("查到工作时间在2013年名单总数为:%s" % len(temp))

def add():   #定义增加函数
    new = []  # 把读取到的文件写入至此列表
    temp = [] #此列表为了自增而建,代码写的很low
    user_input = str(input("请输入类似于[吴东杭,21,17710890829,运维,1995-08-29]的一串东西:"))
    with open("Information.txt", "r", encoding="utf8") as read_file, open("NewInformation.txt", "w+",
                                                                          encoding="utf8")as write_file:
        for line in read_file:
            new.append(line.strip().split(","))
        for new_line in new:
            # i.append(j)
            temp.append(new_line)
            # print(i[-1][0])
        Added_Data = "%d,%s" % (int(temp[-1][0]) + 1, user_input)
        temp.append(Added_Data.split(‘,‘))
        for each_line in temp:
            write_file.write(‘,‘.join(each_line).strip(""))  # 通过内置方法join把列表转换为字符串
            write_file.write("\n")  # 写入这行,可使文件换行
    os.rename("Information.txt", "Information.bak")
    os.rename("NewInformation.txt", "Information.txt")
    os.remove("Information.bak")

def delete():  #定义删除函数
    ReadFile = []
    User_Choice = int(input("请输入staff_id号:"))
    with open("Information.txt", "r", encoding="utf8") as read_file, open("NewInformation.txt", "w+",
                                                                          encoding="utf8") as write_file:
        for line in read_file:
            ReadFile.append(line.strip().split(","))
        for each_line in ReadFile:
            if User_Choice == int(each_line[0]):
                ReadFile.remove(ReadFile[User_Choice - 1])
                for new_line in ReadFile:
                    write_file.write(‘,‘.join(new_line).strip(""))  # 通过内置方法join把列表转换为字符串
                    write_file.write("\n")  # 写入这行,可使文件换行
    os.rename("Information.txt", "Information.bak")
    os.rename("NewInformation.txt", "Information.txt")
    os.remove("Information.bak")

def modify():  #定义更改函数
    if not os.path.exists("Information.txt"):
        exit(-1)
    User_Input = str(input("请输入:"))
    with open("Information.txt", "r", encoding="utf8") as read_file, open("NewInformation.txt", "w+",
                                                                          encoding="utf8") as write_file:
        for line in read_file.readlines():
            write_file.write(line.replace("IT", User_Input))
    os.rename("Information.txt", "Information.bak")
    os.rename("NewInformation.txt", "Information.txt")
    os.remove("Information.bak")

if __name__ == ‘__main__‘:
    msg = ‘‘‘
       1:查询年龄大于22岁学生信息
       2:查询部门为IT学生信息
       3:查询工作开始时间在2013年学生信息
       4:添加
       5:删除
       6:修改
       7:退出
       ‘‘‘
    menu_dic = {

        ‘1‘: search_age_above_22,
        ‘2‘: search_depot_of_IT,
        ‘3‘: search_date_of_2013,
        ‘4‘: add,
        ‘5‘: delete,
        ‘6‘: modify,
        ‘7‘: exit,
    }
    while True:
        print(msg)
        choice = input("操作>>: ").strip()
        if len(choice) == 0 or choice not in menu_dic or choice.isalpha():
            print("温馨提示:请输入1-7之间的数字")
            continue
        if choice == ‘7‘: break
        menu_dic[choice]()

  

时间: 2024-10-06 01:41:57

day4作业之信息表的相关文章

第四周作业 员工信息表程序

员工信息表程序,主要用到知识点: 1.文件的读写操作 2.程序目录规范化 3.不同目录间文件的调用 本周学习内容: 一.序列化和反序列化 序列化:字典等类型变成字符串存到内存. a.json.dumps(变量)(字典等简单类型的序列化): b.pickle.dumps(变量)  (只针对本语言的函数等所有类型的序列化) 反序列化:内存的字符串变成字典等类型读出来. a.可以用eval()针对字典类型: b.json.loads(f.read()): c.pickle.loads(f.read()

员工信息表作业

# 只实现作业要求的查询功能 # 增加,删除,修改功能为选做题 # 创建员工信息表 # 用户输入查询命令 # 分析用户输入的命令,从命令中提取需要查询的关键字 # 根据关键字来查询内容并输出 staff_table=r'F:\python文件\day21生成器\员工信息表.txt' def select(cmd1): #查询功能 with open(staff_table) as f: path=f.readlines() #读出多行赋值给path staff_l=[{ 'staff_id':

python基础之员工信息表作业

周末大礼包 文件存储格式如下: id, name, age, phone, job 1, Alex, 22, 13651054608, IT 2, Egon, 23, 13304320533, Tearcher 3, nezha, 25, 1333235322, IT 现在需要对这个员工信息文件进行增删改查 一. 基础必做: 可以进行查询,支持三种语法: select 列名1,列名2,… where 列名条件 支持:大于小于等于,还要支持模糊查找. 示例: select name, age wh

Python 基础 - Day 4 Assignment - 员工信息表程序

作业要求及初步思路 员工信息表程序,实现增删改查操作: ① 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 select * from staff_table where dept = "IT" select * from staff_table where enroll_date like "2013"② 解决方案: sql语句的python解析问题,即将用户输入的sql

delphi SysErrorMessage 函数和系统错误信息表 good

在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示. 但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢? FormatMessage 可以, 但这个函数太复杂了; 可以用 SysErrorMessage 代替它. 举例: [Delphi] view plaincopyprint? <pre><pre class="delphi" name="code">var err

2014-11-9------- 设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。

一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示.用SQL语句创建四个表并完成相关题目. 表1-1数据库的表结构 表(一)Student (学生表) 属性名 数据类型 可否为空 含 义 Sno Char(3) 否 学号(主码) Sname Char(8) 否 学生姓名 Ssex Char(2) 否

学员信息表

作业: 有以下员工信息表 当然此表你在文件存储时可以这样表示 1 1,Alex Li,22,13651054608,IT,2013-04-01 现需要对这个员工信息文件,实现增删改查操作 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 select  * from staff_table where dept = "IT" select  * from staff_table where en

SysErrorMessage 函数和系统错误信息表

在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示.但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢?FormatMessage 可以, 但这个函数太复杂了; 可以用 SysErrorMessage 代替它. 举例: var  err: string;  ErrorCode: DWORD;begin  ErrorCode:=GetLastError;  ShowMessage(IntToStr(ErrorCode)); 

Python开发【第xxx篇】函数练习题-----员工信息表

文件存储格式如下: 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   #> < s