from os import read,write
l1 = [{'name': 'test', 'age': 'test', 'weight': 'test', 'gender': 'test'}]
def save_data():
"""
将增加,修改,删除之后的列表中的数据保存在本地中
:return: None
"""
# open()函数 1. 本地文件名称 2. 以哪种方式(r(read),w(write)操作文件
# 如果open()函数采用是w模式,当前文件不存在,会自动创建文件
file = open('stu.txt', 'w')
for index, item in enumerate(l1):
if index == (len(l1)-1):
file.write('%s %s %s %s %s' % (index+1, item.get('name'), item.get('age'), item.get('weight'), item.get('gender')))
else:
file.write('%s %s %s %s %s \n' % (index + 1, item.get('name'), item.get('age'), item.get('weight'), item.get('gender')))
file.close()
def read_data():
"""
将增加,修改,删除之后的列表中的数据保存在本地中
:return: None
"""
# open()函数 1. 本地文件名称 2. 以哪种方式(r(read),w(write)操作文件
# 如果open()函数采用是w模式,当前文件不存在,会自动创建文件
file = open('stu.txt', 'r')
l1.clear()
done = 0
while not done:
line = file.readline()
if line != '':
tmp_list = line.split(' ')
l1.append({'name': tmp_list[1], 'age': tmp_list[2], 'weight': tmp_list[3], 'gender': tmp_list[4]})
else:
done = 1
file.close()
def menu_son():
"""
子菜单
:return: None
"""
print('1.根据编号删除学员信息')
print('2.根据学员姓名删除学员信息')
print('3.删除所有学员信息')
def menu():
"""
主菜单
:return: None
"""
print("""
1.添加学员:
2.修改学员信息:
3.查询学员:
4.删除学员:
0.退出程序
""")
def add():
"""
添加学员信息
:return: None
"""
l1.clear()
read_data()
name = input('学员姓名:')
age = input('学员年龄:')
weight = input('学员体重:')
gender = input('学员性别:')
l1.append({'name': name, 'age': age, 'weight': weight, 'gender': gender})
print()
print('添加学员成功')
save_data()
def modify():
"""
修改学员信息
:return: None
"""
l1.clear()
read_data()
if len(l1) == 0:
print('\n学员信息为空\n')
else:
search()
index = int(input('请输入要修改学员的编号:'))
while index < 1 or index > len(l1):
index = int(input('你输入的学员编号有误,请重新选择:'))
index -= 1
name = input('请输入新的姓名({}):'.format(l1[index].get('name')))
age = input('请输入新的年龄({}):'.format(l1[index].get('age')))
weight = input('请输入新的体重({}):'.format(l1[index].get('weight')))
gender = input('请输入新的性别({}):'.format(l1[index].get('gender')))
l1[index]['name'] = name
l1[index]['age'] = age
l1[index]['weight'] = weight
l1[index]['gender'] = gender
print('\n修改学员信息成功\n')
save_data()
def search():
"""
查找学员信息
:return:None
"""
l1.clear()
read_data()
if len(l1) == 0:
print('\n学员信息为空\n')
else:
for index, item in enumerate(l1):
print('{} : {} {} {} {}'.format((index+1), item.get('name'), item.get('age'), item.get('weight'), item.get('gender')))
def delete():
"""
删除学员信息
:return: None
"""
l1.clear()
read_data()
if len(l1) == 0:
print('学员信息为空,无法进行删除操作')
else:
menu_son()
num = int(input('请输入你的操作:'))
if num == 3:
l1.clear()
print('\n数据删除成功\n')
elif num == 1:
search()
index = int(input('请输入要删除学员编号:'))
while index < 1 or index > len(l1):
index = int(input('你输入的学员编号有误,请重新选择:'))
index -= 1
del l1[index-1]
print('\n数据删除成功\n')
else:
search()
flag = False
name = input('请输入要删除学员的姓名')
for stu in l1:
if name == stu.get('name'):
l1.remove(stu)
flag = True
break
if flag:
print('\n数据删除成功\n')
else:
print('你输入的学员姓名在学员系统里找不到,delete失败')
save_data()
while True:
menu()
choice = int(input('请选择操作:'))
while choice < 0 or choice > 5:
choice = int(input('请重新选择操作:'))
if choice == 1:
add()
elif choice == 2:
modify()
elif choice == 3:
search()
elif choice == 4:
delete()
else:
break
Python学员信息管理系统(附带os模块)
猜你喜欢
转载自blog.csdn.net/jdq8576/article/details/85754632
今日推荐
周排行