学生信息系统(json模块解决数据持久化

  • 2020 年 1 月 16 日
  • 筆記

将学生管理的案例,学生信息由原来的只有姓名,拓展为包含,姓名,年龄,两个属性;完成对应的增、删、查、改,操作

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秒后自动返回主菜单nnn')      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('输入有误')