学生信息系统(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('输入有误')

 

posted @ 2019-04-30 11:12  Python及时行乐  阅读(1081)  评论(0编辑  收藏  举报