首页 > 编程语言 > 详细

Python员工信息表作业

时间:2018-09-22 14:02:49      阅读:168      评论:0      收藏:0      [点我收藏+]
‘‘‘python 员工信息表操作,刚学习,没有思路,参照网上某位朋友的写的‘‘‘

import sys
import os

def select1():
    ‘‘‘
    查看文件的函数
    :return:
    ‘‘‘
    with open(e:\\员工信息.txt,mode=r,encoding=utf-8) as f:
        line = f.readlines()
        for i in line:
            print(i.strip())

def select():
    ‘‘‘
    查询函数
    :return:
    ‘‘‘
    msg = ‘‘‘
    请输入或者复制查询命令,如:
    
        1.select name,age from staff_table where age > 22
        2.select * from staff_table where dept = "IT"
        3.select * from staff_table where enroll_date like "2013"
    ‘‘‘
    print(msg)

    user_choice_input = input(>>>:)  # 让用户输入上面的命令
    user_choice_input1 = user_choice_input.split( )  # 用空格分割用户输入的命令

    if user_choice_input == select name,age from staff_table where age > %s % user_choice_input1[7]:
        with open(e:\\员工信息.txt,mode=r+,encoding=utf-8) as f:
            list_age = []  # 定义一个列表。将符合查询条件的员工信息添加进去
            for line in f:
                lis_age = line.strip().split(,)
                if lis_age[2] > user_choice_input1[7]:
                    list_age.append(lis_age)

            for list_age1 in list_age:  # 将列表转换成字符串
                print(,.join(list_age1))
            print(符合条件的人数有 %s 人 %len(list_age))

    elif user_choice_input == select * from staff_table where dept = %s % user_choice_input1[7]:
        with open(e:\\员工信息.txt, mode=r+, encoding=utf-8) as f:
            list_dept = []
            for line in f:
                lis_dept = line.strip().split(,)
                if lis_dept[4] == eval(user_choice_input1[7]):
                    list_dept.append(lis_dept)

            for list_dept1 in list_dept:
                print(,.join(list_dept1))
                print(符合条件的人数有 %s 人 % len(list_dept))
    elif user_choice_input == select * from staff_table where enroll_date like %s % user_choice_input1[7]:
        with open(e:\\员工信息.txt,mode=r,encoding=utf-8) as f:
            list_data = []
            for line in f:
                lis_data = line.strip().split(,)
                lis_year = lis_data[5].strip().split(-)
                if lis_year[0] == eval(user_choice_input1[7]):
                    list_data.append(lis_data)
            for list_data1 in list_data:
                print(,.join(list_data1))
                print(符合条件的人数有 %s 人 % len(list_data))


def alter():
    ‘‘‘
    添加命令
    :return:
    ‘‘‘
    msg = ‘‘‘
    如果要添加一项员工信息,按照如下格式填写,内容与内容之间以逗号隔开,如:
        Jack Wang,30,43304320533,INS,2015-05-03
    ‘‘‘
    print(msg)
    user_choice_input = input(请输入要添加的内容>>>:)
    user_choice_input1 = user_choice_input.split(,)

    with open(e:\\员工信息.txt,mode=r+,encoding=utf-8) as f:
        list_id = []
        for line in f: # 将现在员工信息的ID号保存到一个列表中 这个ID是使用的员工信息的 10位数字来进行判断的
            if line == \n:
                continue  # 这个地方是避免读取空行,如果读取空行,下面的添加代码会报错
            lis_msg = line.strip().split(,)
            list_id.append(lis_msg[3])

        if user_choice_input1[2] in list_id:
            print(已经有了这个ID了)
            main()

        else:
            # 设置员工信息的序号
            index = str(len(list_id) + 1)  # list_id 列表的长度其实就是现有员工信息的个数
            # 将需要插入到用户输入的最前面
            user_choice_input1.insert(0,index)  # 在用户输入的信息前面添加上序号
            if len(list_id) == 0:
                f.write(,.join(user_choice_input1))  # 如果里面没有内容,则直接写入,不换行
            else:
                f.write(\n)
                f.write(,.join(user_choice_input1))  # 如果里面有内容,先进行换行,再进行写入

def delete():
    ‘‘‘
    删除函数
    :return:
    ‘‘‘
    print(请输入要删除命令:输入用户的序号,既可以从列表中删除用户信息)
    msg = ‘‘‘
    1.按 1 删除,直接删除用户的序号即可
    2.按 2 或者 q 退出
    3.按下其他任意键,返回上一层
    ‘‘‘
    print(msg)

    user_choice_input = input(请输入命令:>>>)
    if user_choice_input == 1:
        print(目前用户信息为:)
        select1() # 输入现有用户的信息
        print(\n)
        user_choice_input1 = input(请输入需要删除的ID:>>>)
        with open(e:\\员工信息.txt,mode=r+,encoding=utf-8) as f ,open(e:\\员工信息.bak,mode=w+,encoding=utf-8) as f1:
            index = 1 # 删除的时候用来重新编号
            for line in f:
                lis_msg = line.strip().split(,)
                if user_choice_input1.strip() != lis_msg[0]:
                    lis_msg[0] = str(index)
                    f1.write(,.join(lis_msg))
                    f1.write(\n)
                    index += 1
                else:
                    continue
            f.close()
            f1.close()
            os.remove(e:\\员工信息.txt)
            os.rename(e:\\员工信息.bak,e:\\员工信息.txt)

        select1()


    elif user_choice_input == 2 or user_choice_input.lower() == q:
        sys.exit()
    return

def main():
    ‘‘‘
    主程序
    :return:
    ‘‘‘
    print(员工信息表操作作业练习:)
    msg = ‘‘‘
    请输入要进行的操作
    1.查询
    2.添加
    3.删除
    4.退出
    ‘‘‘
    while True:
        print(msg)
        user_choice_input = input(请输入选项:>>>)
        if user_choice_input.strip() == 1:
            select()
        elif user_choice_input.strip() == 2:
            alter()
        elif user_choice_input.strip() == 3:
            delete()
        elif user_choice_input.strip().lower() == 4 or q:
            sys.exit()
        else:
            print(输入有误!请重新输入)

main()

 

Python员工信息表作业

原文:https://www.cnblogs.com/hongyu0518/p/9689779.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!