• 2019_11_19_周末班第三章作业讲解


    1.文件a1.txt内容

    序号     部门      人数      平均年龄      备注
    1       python    30         26         单身狗
    2       Linux     26         30         没对象
    3       运营部     20         24         女生多
    .......
    通过代码,将其构建成这种数据类型:
        [{'序号':'1','部门':Python,'人数':30,'平均年龄':26,'备注':'单身狗'},......]

    使用的知识点:
        1. 文件读取
        2. 字符串
        3. 字典
        4. 列表

    f = open("a1.txt", mode="r", encoding="utf-8")
    result = []
    title_str = f.readline().strip()  # 读取第一行
    title_lst = title_str.split()   # 默认是按照空白去切(空格, 	, 
    )
    print(title_lst)
    for line in f:  # 接着去读
        dic = {}
        line = line.strip()  # 去掉
    
        data_lst = line.split()  # 根据空白切割 [1,python,30,26,单身狗]
        for i in range(len(title_lst)):
            dic[title_lst[i]] = data_lst[i]
        result.append(dic)  # append 给列表添加元素
    print(result)

    2.HR人力资源管理.
    1. 菜单: ("查看员工信息","添加员工信息", "修改员工信息", "删除员工信息", "退出")
    2. 添加员工信息:
        用户输入员工的基本信息(id, name, birthday, salary, input_time),
        将员工信息写入到文件emp.db文件内
    3. 修改员工信息:
        显示所有员工信息. 然后让用户选择要修改的员工的id. 然后让用户输入员工的工资,
        将员工的工资修改为用户输入的工资. 其余内容不做改动
    4. 删除员工信息:
        显示所有员工信息. 然后用户选择要删除的员工id, 根据用户输入的id删除该员工的全部信息
    5. 查看员工信息:
        显示出所有员工的基本信息.


    按照这个顺序做可能会容易一点儿:
        1, 2, 5, 4, 3

    import os
    id = 1
    
    def show_info():
        f = open("emp.db", mode="r", encoding="utf-8")
        print("id	name	birthday	salary	input_time")
        for line in f:
            lst = line.strip().split("$$") # [1, alex, 2019-01-02,500]
            print("	".join(lst))
        f.close()
    
    
    def check_info():
        id = input("请输入一个用户的id:")  # 用户输入的id
        f = open("emp.db", mode="r", encoding="utf-8")
        for line in f:  # line是每一行数据
            line = line.strip()  # 去掉
    
            lst = line.split("$$")  # lst 每一行数据[1, alex ,xxx]
            if lst[0] == id:
                print('找到了你要的员工信息')
                print(lst[0], lst[1], lst[2], lst[3], lst[4])
                break
        else:  # 能执行到它.证明没执行过break. 证明id不存在
            print("员工信息不存在")
    
        f.close()
    
    
    def add_emp():
        global id
        name = input("请输入员工姓名:")
        birthday = input("请输入员工的生日:")
        salay = input("请输入员工的工资:")
        input_time = input("请输入录入时间:")
        f = open("emp.db", mode="a", encoding="utf-8")
        f.write(str(id)+"$$"+name+"$$"+birthday+"$$"+salay+"$$"+input_time+"
    ")
        print("新增成功")
        id = id + 1
        f.close()
    
    
    def upd_emp():
        show_info()
        id = input("请输入你要修改的员工id:")
        f = open("emp.db", mode="r", encoding="utf-8")
        user_info = None
        for line in f:
            lst = line.strip().split("$$")
            if id == lst[0]:
                # 找到了那个人
                user_info = lst  # [1, alex, xxx, 工资, xxxx]
                break
        else:
            print("没找到这个人")
            return
        f.close()
        # xxx
        salary = input("请输入你的工资:")
        user_info[3] = salary  # 更新用户信息  [1, alex, xxx, 工资, xxxx]
    
        with open("emp.db", mode="r", encoding="utf-8") as f1, 
            open("emp.db_副本", mode="w", encoding="utf-8") as f2:
            for line in f1:
                lst = line.strip().split("$$")
                if lst[0] == user_info[0]:
                    f2.write("$$".join(user_info)+"
    ")
                else:
                    f2.write(line)
    
        os.remove("emp.db")
        os.rename("emp.db_副本", "emp.db")
        print("修改成功")
    
    
    
    def del_emp():
        # 显示所有员工信息
        show_info()
        id = input("请输入你要删除的人的id:")
        # 我要删除文件内的某些内容对于文件而言其实是修改操作
        with open("emp.db", mode="r", encoding="utf-8") as f1, 
                open("emp.db_副本", mode="w", encoding="utf-8") as f2:
            for line in f1:
                lst = line.strip().split("$$")  # [1, alex, xxx]
                if lst[0] == id:
                    continue  # 这一行不处理
                f2.write(line)
    
        os.remove("emp.db")
        os.rename("emp.db_副本", "emp.db")
    
    
    def main():
        while 1:
            menu = ("查看员工信息","添加员工信息", "修改员工信息", "删除员工信息", "退出")
            for i in range(len(menu)):
                print(i + 1, menu[i])
    
            menu_select = input("请输入你要执行的菜单")
            if menu_select == '1':
                check_info()
            elif menu_select == '2':
                add_emp()
            elif menu_select == '3':
                upd_emp()
            elif menu_select == '4':
                del_emp()
            elif menu_select == '5':
                print("退出程序...")
                break
            else:
                print("您输入的内容有误, 请重新输入.")
    
    
    main()
    
    
    lst = ["alex", "wusir", "taibai"]
    print("__sb__".join(lst))
  • 相关阅读:
    Shiro结合配置文件实战实现权限验证
    Shiro的一些概念解释以及配置了解
    jedis工具类
    【转载】redis的主从复制
    Redis的事务
    redis的持久化
    SSM框架-SpringMVC 实例文件上传下载
    如何设置CentOS 7获取动态及静态IP地址
    阿里云linux centos 一键部署web环境--图文详解
    SVN使用教程总结
  • 原文地址:https://www.cnblogs.com/ComputerVip/p/11887287.html
Copyright © 2020-2023  润新知