python 文件操作练习三-文件版学生管理系统
时间: 2023-08-25 21:09:00 浏览: 47
好的,下面是一个简单的文件版学生管理系统的练习代码:
```python
import os
filename = 'students.txt' # 存储学生信息的文件名
def menu():
'''打印菜单'''
print('''
学生管理系统 v0.1
1. 添加学生
2. 删除学生
3. 修改学生信息
4. 查询学生信息
5. 显示所有学生信息
0. 退出系统
''')
def add_student():
'''添加学生信息'''
name = input('请输入姓名:')
age = input('请输入年龄:')
gender = input('请输入性别:')
student = {'name': name, 'age': age, 'gender': gender}
with open(filename, 'a') as f:
f.write(str(student) + '\n')
print('学生信息添加成功!')
def delete_student():
'''删除学生信息'''
name = input('请输入要删除的学生姓名:')
with open(filename, 'r') as f:
students = f.readlines()
with open(filename, 'w') as f:
for student in students:
if eval(student)['name'] != name:
f.write(student)
print('学生信息删除成功!')
def modify_student():
'''修改学生信息'''
name = input('请输入要修改的学生姓名:')
with open(filename, 'r') as f:
students = f.readlines()
with open(filename, 'w') as f:
for student in students:
if eval(student)['name'] == name:
age = input('请输入新的年龄:')
gender = input('请输入新的性别:')
student = {'name': name, 'age': age, 'gender': gender}
f.write(str(student) + '\n')
print('学生信息修改成功!')
else:
f.write(student)
def query_student():
'''查询学生信息'''
name = input('请输入要查询的学生姓名:')
with open(filename, 'r') as f:
students = f.readlines()
for student in students:
if eval(student)['name'] == name:
print('姓名:{},年龄:{},性别:{}'.format(eval(student)['name'], eval(student)['age'], eval(student)['gender']))
break
else:
print('未找到该学生信息!')
def show_students():
'''显示所有学生信息'''
with open(filename, 'r') as f:
students = f.readlines()
if students:
for student in students:
print('姓名:{},年龄:{},性别:{}'.format(eval(student)['name'], eval(student)['age'], eval(student)['gender']))
else:
print('暂无学生信息!')
def main():
'''程序主函数'''
while True:
menu()
choice = input('请输入要执行的操作:')
if choice == '1':
add_student()
elif choice == '2':
delete_student()
elif choice == '3':
modify_student()
elif choice == '4':
query_student()
elif choice == '5':
show_students()
elif choice == '0':
print('谢谢使用,再见!')
break
else:
print('输入错误,请重新输入!')
if __name__ == '__main__':
if not os.path.exists(filename):
open(filename, 'w').close() # 如果文件不存在,则创建一个空文件
main()
```
这个学生管理系统使用文件来存储学生信息,每个学生的信息用一个字典表示,字典转换成字符串后存储到文件中。在程序开始时,如果文件不存在,则会创建一个空文件。程序运行时,会根据用户输入的选项执行相应的操作,如添加学生、删除学生、修改学生信息、查询学生信息、显示所有学生信息等。