学生信息系统(json模块解决数据持久化)
将学生管理的案例,学生信息由原来的只有姓名,拓展为包含,姓名,年龄,两个属性;完成对应的增、删、查、改,操作
import json,os,time,sys student_list = [] File_path = 'name.txt' #从文件中读取之前存储的数据(考虑是否有对应文件的问题,要做文件是否存在的判断),然后将读取到的数据存储到列表 def dataRead(filepath): # 判断filepath这个路径对应的文件是否存在: if os.path.exists(filepath): print('找到提取文件') f1 = open(filepath,'r',encoding='utf-8') global student_list student_list = json.load(f1) print('学生信息',student_list) f1.close() print('读取数据成功') else: print('文件不存在') def addStudent(): name = input('请输入学生姓名:') age = int(input('请输入学生年龄:')) stu_dict = { 'name':name, 'age':age } student_list.append(stu_dict) print('学生信息添加成功,1秒后自动返回主菜单\n\n\n') time.sleep(1) def delStudent(): name = input('请输入要删除的学生姓名:') for stu in student_list: if name == stu['name']: student_list.remove(stu) print('删除成功') else: print('该学生信息不存在') def updateStudent(): name = input("请输入要修改的学生姓名:") for stu in student_list: if name == stu['name']: new_name = input("请输入修改后的姓名:") new_age = eval(input("请输入修改后的年龄:")) stu['name'] = new_name stu['age'] = new_age print('修改成功') break else: print('该学生信息不存在') # name = input('请输入要修改的学生姓名:') # age = int(input('请输入修改学生的年龄:')) # new_dict = {'name':name,'age':age} # if new_dict in student_list : # index = student_list.index(new_dict) # # new_name = input('请输入修改后的学生姓名:') # new_age = int(input('请输入修改后的学生年龄:')) # # # student_list[index]['name'] = new_name # student_list[index]['age'] = new_age # print('修改成功') # else: # # print('该学生信息不存在') def queryStudent(): name = input('请输入要查询的学生姓名:') for stu in student_list: if name == stu['name']: print('学生信息:',stu) break else: print('该学生信息不存在') def showAll(): print('所有学生信息如下:') for stu in student_list: print('姓名:{},年龄:{}'.format(stu.get('name'),stu.get('age'))) def systemExit(): dataWrite(File_path) print('谢谢使用') sys.exit() #将列表中的数据写入文件 def dataWrite(filepath): f = open(filepath,'w',encoding='utf-8') json.dump(student_list,f) f.close() print('数据写入成功') #从文件中加载数据 dataRead(File_path) while True: print('1.添加学生') print('2.删除学生') print('3.修改学生') print('4.查询学生') print('5.展示所有') print('6.退出系统') num = input('请输入1-6的数字进入相应功能:') print('------'*6) if num == '1': addStudent() elif num == '2': delStudent() elif num == '3': updateStudent() elif num == '4': queryStudent() elif num == '5': showAll() elif num == '6': systemExit() else: print('输入有误')
所思及所学
学而不思则罔,思而不学则殆!