博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。
Python 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 优雅的语法和动态类型以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。下面我们来介绍一下python的文件操作实现学生管理系统相关知识。
增加保存学生信息到文件的功能和从文件中读取学生信息到程序的功能。
(1)在显示菜单列表的函数中,增加“保存数据”和“恢复数据”选项。
(2)增加函数,用于将学生数据保存到文件中,write()方法的参数必须是字符串类型,因此,需要将字典类型的数据强制转换为字符串后进行写入。
(3)增加函数,用于从文件中读取数据到变量,从文件中读取到的内容是字符串,我们需要将这些带有特定格式的字符串转换为其原来的类型,可调用eval()函数将字符串转换为字典。
(4)在main函数中增加输入选项。
def addStuInfo():
newNum = input("请输入新学生的学号:") #提示并获取学生的学号
newName = input("请输入新学生的姓名:") #提示并获取学生的姓名
newSex = input("请输入新学生的性别(男/女):")#提示并获取学生的性别
newInfo = {} #定义字典
#赋值
newInfo['num'] = newNum
newInfo['name'] = newName
newInfo['sex'] = newSex
stuInfos.append(newInfo) #将元素添加到列表中
stuInfos=[]
def printMenu():
print("="*20)
print(" 学生管理系统V2.0 ")
print("1.添加学生信息")
print("2.删除学生信息")
print("3.显示所有学生信息")
print("4.保存数据")
print("5.恢复数据")
print("0.退出系统")
print("="*20)
def delStuInfo(student):
del_num = input("请输入要删除的学生的学号:")
for stu in student:
if stu['num'] == del_num:
student.remove(stu)
def showStuInfo():
print("=" * 20)
print("学生的信息如下:")
print("=" * 20)
print("序号 学号 姓名 性别")
i = 1
#遍历存储学生信息的列表,输出每个学生的详细信息
for tempInfo in stuInfos:
print("%d %s %s %s" % (i, tempInfo['num'],tempInfo['name'], tempInfo['sex']))
i += 1
def save_file():
with open('student.txt','w') as file:
file.write(str(stuInfos))
#恢复数据
def recover_data():
global stuInfos
with open('student.txt','r') as file:
content = file.read()
stuInfos = eval(content)
def main():
while True:
printMenu() #打印功能菜单
key = input("请输入功能对应的数字")#获取用户输入
if key == '1': #添加学生信息
addStuInfo()
elif key == '2': #删除学生信息
delStuInfo(stuInfos)
elif key == '3': #显示学生信息
showStuInfo()
elif key == '4':
save_file()
elif key == '5':
recover_data()
elif key == '0': #退出循环
quit_con = input("确定退出吗?(Yes or No):")
if quit_con == 'Yes':
break
main() #调用main函数
注意:str()和eval()函数都是Python内置函数,其中str()函数的作用是将对象转换为字符串,eval()函数用于执行一个字符串表达式,并返回表达式的值。
1、廖雪峰的官网
2、python官网
3、Python编程案例教程
以上就是就是关于Python的文件操作实现学生管理系统相关知识,可以参考一下,觉得不错的话,欢迎点赞、收藏、在看,欢迎微信搜索关注java基础笔记,后面会不断更新相关知识,大家一起进步。