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))