Python实现基于文件存储的学生信息管理系统

慢慢来
慢慢来
发布时间:2026-10-13 | 4人浏览过
原创

本文介绍如何使用Python实现一个简易的学生信息管理系统。系统核心功能包括增加、修改、删除、查询及显示学生信息,并支持将数据持久化存储至本地文件。通过列表存储内存数据,利用字典记录学生详情,结合文件读写模块实现数据的保存与加载,适合Python初学者理解数据结构与IO操作。

Python学生信息管理系统概述

本文展示一个基于Python文件操作的简易学生信息管理系统示例,供读者参考学习。

该系统主要涵盖以下功能模块:

系统主函数部分包含以下核心功能: 1. 增加学生信息 2. 修改学生信息 3. 删除学生信息 4. 查询特定学生 5. 显示所有学生信息 6. 将当前数据写入文件 7. 从文件读取数据

在掌握Python文件模块后,可将此前开发的学生信息管理系统扩展文件存储功能,实现数据持久化。

系统具体功能列表如下:

1. 新增学生信息; 2. 修改现有学生信息; 3. 删除指定学生信息; 4. 查询特定学生信息; 5. 显示所有学生信息; 6. 将内存数据录入到文件; 7. 从文件读取数据到内存; 8. 退出系统。

系统功能与主函数设计

主函数部分负责调用上述各功能模块。

程序初始化时定义一个列表L,用于在内存中存储所有学生的信息对象。

增加学生信息功能实现如下:

系统将接收到的学生各项信息封装为一个字典,随后将该字典添加至列表L中。

增加学生信息实现


def add():
 dict1 = {}
 sName = input("请输入学生姓名:")
 sAge = eval(input("请输入学生年龄:"))
 sNumber = eval(input("请输入学生学号:"))
 tele_num = eval(input("请输入手机号码:"))
 dict1["name"] = sName
 dict1["age"] = sAge
 dict1["sNumber"] = sNumber
 dict1["tele_num"] = tele_num
 L.append(dict1)
 print("增加成功")
 input("按任意键返回菜单")

修改学生信息功能实现如下:

系统以学号作为索引键进行查找。若在学生库中未找到对应的学号,则提示“无此学生”。

修改学生信息实现


def modify():
 num = eval(input("请输入学生学号:"))
 index1 = -1
 for i,dict in enumerate(L):
 if dict.get("sNumber") == num:
 index1 = i
 break
 if index1 != -1:
 L[index1]['name'] = input("请输入新的姓名:")
 L[index1]['age'] = eval(input("请输入新的年龄:"))
 L[index1]['sNumber'] = eval(input("请输入新的学号:"))
 L[index1]['tele_num'] = eval(input("请输入新的手机号:"))
 print("修改成功")
 else:
 print("无此学生")
 input("按任意键返回菜单")

删除学生信息功能实现如下:

删除操作同样以学号为索引键。若学生库中不存在该学号,则提示“无此学生”。

删除学生信息实现


def delete():
 num = eval(input("请输入要删除学生的学号:"))
 index1 = -1
 for i, dict in enumerate(L):
 if dict.get("sNumber") == num:
 index1 = i
 break
 if index1 != -1:
 del L[index1]
 print("删除成功")
 else:
 print("无此学生")
 input("按任意键返回菜单")

查询学生信息功能实现如下:

若查询成功,则显示该学生的详细信息;若未找到,则提示“无此学生”。

查询学生信息实现


def search():
 num = eval(input("请输入要查询学生的学号:"))
 index1 = -1
 for i, dict in enumerate(L):
 if dict.get("sNumber") == num:
 index1 = i
 break
 if index1 != -1:
 print("姓名:%s 年龄:%d 学号:%d 手机号码:%d" % (L[index1]["name"], L[index1]["age"], \
 L[index1]["sNumber"], L[index1]["tele_num"]))
 else:
 print("无此学生")
 input("按任意键返回菜单")

显示所有学生信息功能实现如下:

显示所有学生信息


def prin():
 if len(L) == 0:
 print("无成员")
 else:
 for dict1 in L:
 print("姓名:%s 年龄:%d 学号:%d 手机号码:%d"%(dict1["name"], dict1["age"],\
 dict1["sNumber"], dict1["tele_num"]))
 input("按任意键返回菜单")

将数据录入文件功能实现如下:

由于学生信息在内存中以字典类型存储,在写入文件前需将其转换为字符串格式。

数据写入文件功能


def write_file():
 file = open("student_list.data", 'w', encoding='utf-8')
 for i in L:
 file.write(str(i) + '\n')
 file.close()
 input("录入成功,按任意键返回菜单!")

读取文件数据功能实现如下:

从文件读取的内容为字符串类型,需使用eval()函数将其还原为字典对象,随后添加至列表L中。

从文件读取数据功能


def read_file():
 try:
 file = open("student_list.data", 'r', encoding='utf-8')
 content = file.readlines()
 for i in content:
 L.append(eval(i))
 file.close()
 input("读取完成,按任意键返回菜单!")
 except:
 print("文件不存在")

如需获取更多相关学习资料,请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对读者的学习有所帮助,欢迎大家继续支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表