员工信息表

import os                                                       #调用os,time模块import time

def file_oper():                                                        #定义file_oper()对文件进行操作    with open(‘message.txt‘,‘r‘,encoding=‘utf-8‘) as f:              #打开文件,生成两个列表        file_opers = []        file_oper1 = []        for line in f:            file_opers.append(line.strip().split(‘,‘))            file_oper1.append(line)        file_opera = [file_opers,file_oper1]                             #将两个列表添加到list中        return  file_opera                                              #返回list的值

def list():                                                             #定义list函数    file_opers = file_oper()[0]                                         #调用file_oper函数,将file_opers赋值    index = []                                                          #定义空列表    staffids = []    names = []    ages = []    phones = []    depts = []    enroll_datas = []    for (v,i) in enumerate(file_opers):                                #获取下标        index.append(v)                                                 #将下标添加到index列表中    for v in index:                                                     #将每个列表中下标相同的元素放到一个列表中        staffids.append(file_opers[v][0])        names.append(file_opers[v][1])        ages.append(file_opers[v][2])        phones.append(file_opers[v][3])        depts.append(file_opers[v][4])        enroll_datas.append(file_opers[v][5])    value =  [staffids,names,ages,phones,depts,enroll_datas]           #将所有列表添加到新的列表value    return value                                                       #返回列表value的值

def title():                                                            #定义title函数    print(‘您当前可操作的对象为:‘)                                    #打印可操作对象    print(‘------------------------------------‘)    for x in file_oper()[1]:        print(x.strip())    print(‘------------------------------------‘)

def example():                                                           #定义exmaple函数,打印语句示例    oper = [‘增:create zhang san,23,1388888888,Market,2018-03-31‘,\            ‘删:delete 1‘,\            ‘改:update staff_table SET dept="Market" WHERE where dept = "IT"‘,\            ‘查:select name,age from staff_table where age > 22,\            \nselect  * from staff_table where dept = "IT",\            \nselect  * from staff_table where enroll_date like "2013"‘]    print(‘--------操作语句示例---------‘)    for i in oper:        print(i)    print(‘-----------------------------‘)

def rename(func):                                                        #定义rename装饰器,对操作的文件进行备份    def wapper(*args,**kwargs):        func(*args,**kwargs)        os.rename(‘message.txt‘, ‘message_%s.bak‘ % time.strftime(‘%Y%m%d%H%M%S‘))        os.rename(‘message_1.txt‘, ‘message.txt‘)    return wapper

@rename                                                                    #调用装饰器def create(str1):                                                          #定义create函数    phones = list()[3]                                                      #调用函数并赋值    staff_id = list()[0]    list1 = file_oper()[1]    createdata = str1.split(‘ ‘)                                            #对输入语句进行split操作,取得需要的phone值    staff = createdata[-1]    staff_a = staff.split(‘,‘)    with open(‘message_1.txt‘, ‘w+‘, encoding=‘utf-8‘) as add_file:     #打开文件        if staff_a[2] not in phones:                                        #判断输入是否在phones列表中            index1 = int(staff_id[-1])+1                                     #存在则将staff_id+1,存入message_1.txt中            staff_all = ‘\n‘ + str(index1) + ‘,‘ + staff            list1.append(staff_all)            print(‘-----------------------‘)            print(‘写入成功!‘)        else:                                                               #不存在文件重新写入            print(‘信息已存在或输入错误,请重新输入‘)        for i in list1:            add_file.write(i)

@rename                                                                 #调用装饰器def delete(str1):                                                       #定义delete函数    staffids = list()[0]                                                #调用函数并赋值    list1 = file_oper()[1]    deldata = str1.split(‘ ‘)                                           #对输入语句进行split操作,取得需要的staff_id值    staff_id = deldata[-1]    with open(‘message_1.txt‘, ‘w+‘, encoding=‘utf-8‘) as del_file:    #打开文件        if staff_id in staffids:                                        #判断文件是否存在于staffids列表中            index = staffids.index(staff_id)                            #存在删除            del staffids[int(index)]            del list1[int(index)]            print(‘-----------------------‘)            print(‘删除成功!‘)        else:                                                               #不存在            print(‘文件中不存在对应的staffid!‘)        for i in list1:            del_file.write(i)

@rename                                                                     #调用装饰器def update(str1):                                                           #定义update函数    depts = list()[4]                                                       #调用函数并赋值    file_opers = file_oper()[0]    list1 = file_oper()[1]    update_data = str1                                                      #对输入语句进行split操作,取得dept值    update_datas = update_data.split(‘"‘)    with open(‘message_1.txt‘, ‘w+‘, encoding=‘utf-8‘) as up_file:     #打开文件        if update_datas[3] in depts:                                        #判断dept是否depts列表中            for i in file_opers:                                            #存在修改                if update_datas[3] in i:                    i[i.index(update_datas[3])] = update_datas[1]            i = ",".join(i)            up_file.write(str(i) + "\n")            print(‘------------------------------‘)            print(‘更改成功!‘)        else:                                                               #不存在打印提示            for i in list1:                up_file.write(i)            print(‘所输入的值不在文件中!‘)

def select(str1):                                                           #定义select函数    list1 = file_oper()[0]                                                  #调用函数并赋值    choise = str1                                                           #将输入的字符串进行split操作,取得需要的值    choise1 = choise.split(‘where‘)    value = choise1[-1].strip()    if value.startswith(‘age‘):                                             #输入的值为age则查找文件中对应的age信息        choise_age = value.split(">")        age = choise_age[-1].strip()        print(‘---------------------‘)        for i in list1:            if int(age) < int(i[2]) :                i = ",".join(i)                print(i)        print(‘---------------------‘)        print(‘以上为查找到的信息!‘)    if value.startswith(‘dept‘):                                        #输入的值为dept则查找文件中对应的dept信息        choise_dept = value.split(‘"‘)        print(‘---------------------‘)        for i in list1:            if choise_dept[1] in i:                i = ",".join(i)                print(i)        print(‘---------------------‘)        print(‘以上为查找到的信息!‘)    if value.startswith(‘enroll_date‘):                              #输入的值enroll_date为则查找文件中对应的信息        choise_enroll = value.split(‘"‘)        print(‘---------------------‘)        for i in list1:            if i[-1].startswith(choise_enroll[1]) :                i = ",".join(i)                print(i)        print(‘---------------------‘)        print(‘以上为查找到的信息!‘)

def mains():                                                       #定义mains函数    example()                                                       #打印示例    while True:        title()                                                     #打印可操作语句        choise = input(‘请输入操作语句(按q退出):‘)                #请用户输入语句        if choise.startswith(‘select‘):                             #根据开头输入单词,调用对应的函数,输入q为退出            select(choise)        if choise.startswith(‘update‘):            update(choise)        if choise.startswith(‘delete‘):            delete(choise)        if choise.startswith(‘create‘):            create(choise)        if choise == ‘q‘:            print(‘退出成功!‘)            break

mains()                                                              #调用mains函数
时间: 2024-11-05 21:57:08

员工信息表的相关文章

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

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

打印简单公司员工信息表

要求,输入name不为空,输入次数最多3次,3次后跳出程序: 知识点: raw_input str转int whil if elif else continue break for 导入模块 引用变量值 格式化输出 vim #!/usr/bin/env python import sys user_name = "carson" this_year = 2014 counter  = 0 while True:     if counter < 3:         name =

python-作业:员工信息表

程序可实现以下功能:1.查询,输入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",查询到符合要求的信息.2.创建,输入insert Mickle,22,1365

L01-04:python查询员工信息表练习

#decoding=utf-8 '''编写可供用户查询的员工信息表! 1|用户认证    ID Name department phone    查询关键字:姓名''' import linecache input01=raw_input("pls write your name:") i=1 name=[] count = len(open('user.txt','rU').readlines()) while i<=count:         fline = linecac

Python下用List对员工信息表进行模糊匹配

#需求 用户可以模糊查询员工信息 显示匹配了多少条,匹配字符需要高亮度显示 #脚本内容 #!/usr/bin/env python #_*_ coding:utf-8 _*_ while True:         info = 'info.txt'         f = file(info)         search=raw_input('Please Engter You Search Info: ')         for line in f.readlines():       

员工信息表作业

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

无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]

无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一定要用到非常熟练才可以,今天我们会通过一个员工信息表实例,再把这些组件串一下. (1)TextField  (2)Botton  (3)NumberField (4)Hidden (5)DataFiedl (6)RadioGroup (7)CheckBoxGroup (8)Combobox (9)F

python Day 4 :员工信息表程序

员工信息表程序,实现增删改查操作: 可进行模糊查询,语法至少支持下面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" 查到的信息,打印后,最后面还要显示查到的条数 可创建新员工纪录,以phone做唯一键,s

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

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