第三周作业——工资管理系统(练习文件操作)

第三周作业:

主要考查的是文件操作,含文件只读,只写,以及追加写的操作,并涉及列的修改操作,以及字符串的

strip 去空格操作和split() 对字符串进行切片处理


文件写入操作时注意需要关闭文件 ,否则文件 写入操作只写到内存中,并没有写到文件中


本程序主要有三大功能:

1、查询员工工资 

主要知识点: 

      1、strip和split的用法,用于分割info.txt 存到最应的列表中 

      2、判断名称是否存在于列表中,存在则输入对应的工资 

2、修改员工信息(名称和工资) 主要知识点:

     1、主要是列表的replace操作以及写入文件的操作

3、添加新员工信息 主要知识点: 

    1、追加写入操作,判断重复

流程图如下:

第三周作业——工资管理系统(练习文件操作)_第1张图片

info.txt文件内容如下:

Aalx 100000
Rain 80000
Egon 50000
Yuan 30000

代码如下:

# Author:pjf
# github=https://github.com/pengxuanlan/python/tree/master/day3
# time:2017-12-15 9:00
# file = open("info.txt","r+",encoding="utf-8")

exit_set = False
msg = '''   # 定义菜单项
1. 查询员工工资
2. 修改员工工资
3. 增加新员工记录
4. 退出
'''
file_r = open("info.txt", "r", encoding="utf-8")  # 读取文件
lines = file_r.readlines()
while not exit_set:
    print(msg)
    choose = input("请输入需要使用的功能:")
    if choose == '1':    # 查询工资

        username = input("请输入查询姓名:")
        for i in lines:
            (user,salay) = i.strip('\n').split()
            if username == user:
                print("%s的工资为:\033[34;1m%s\33[0m" % (username,salay))
                pass
    elif choose == '2':    # 修改员工工资
        user_old = input("请输入员工姓名:").strip()
        for i in lines:
            file = i.strip().split()
            if user_old in file:
                salay_old = file[1]   # 把旧工资取出来
                user_new, salay_new = input("请输入新的员工姓名和工资,用空格分离:").strip().split()
                file_user = open("info.txt", "w", encoding="utf-8")
                for line in lines:
                    if user_old in line:
                        line = line.replace(user_old, user_new)  # 先改名称

                    file_user.write(line)
                file_user.close()
                file_r.close()
                file_r = open("info.txt", "r", encoding="utf-8")  # 重新读取文件
                lines = file_r.readlines()
                file_salay = open("info.txt", "w", encoding="utf-8")   #重新读取文件
                for line in lines:
                    if user_new in line:
                        line = line.replace(salay_old, salay_new)  # 修改工资
                    file_salay.write(line)   # 写入文件
                file_salay.close()  #关闭文件
                file_r.close()
                print("修改成功")
    elif choose == '3':
        file_r = open("info.txt", "r+", encoding="utf-8")  # 追加方式打开方便写入
        lines = file_r.readlines()
        file_list=[]
        for i in lines:
            file = i.strip().split()
            file_list.append(file[0])
        user_new_info = input("请输入新员工的名称和工资,以空格分开:")
        user_x, salay_x=user_new_info.strip().split()
        if user_x in file_list:
            print("用户名已经存在,无法添加")
        else:
            file_r.write(user_new_info+"\n") # 添加换行符
            print("恭喜你,用户 %s 添加成功" % user_x)
            file_r.close()
    elif choose == '4':
        print("再见!")
        exit_set =True
    else:
        print("无效输入,请重新输入")























你可能感兴趣的:(Python)