import os

stus = [] # 学生信息列表(每个学生的信息以字段存储)

def add_stu():
sid = input('输入学生学号:')
sname = input('输入学生姓名:')
sage = input('输入学生年龄:')
dict_stu = {'id': sid.strip(), 'name': sname.strip(), 'age': int(sage.strip())}
stus.append(dict_stu)

def remove_stu(name):
item = search_stu(name)
stus.remove(item)

def search_stu(name):
flag = False
for s in stus:
if s['name'] == name.strip():
print(s)
flag = True
return s
if flag == False:
print('该学生不存在')
return None

def query_all_stu():
print('序号\tid\tname\tage')
for i, stu in enumerate(stus, 1):
print(i, end="")
print('\t%s\t%s\t%s' % (stu['id'], stu['name'], stu['age']))

def print_menu():
print('=' * 30)
print('学生管理系统'.center(30))
print('输入1:添加学生')
print('输入2:查找学生')
print('输入3:修改学生')
print('输入4:删除学生')
print('输入5:查看所有学生')
print('输入6:退出')

def file_read():
try:
file_name=r'stu.txt'
if os.path.exists(file_name):
f = open(file_name, 'r', encoding='utf-8')
while True:
line_text = f.readline()
if line_text == "":
break
line_list = line_text.split()
dict_item={'id':line_list[0],'name':line_list[1],'age':line_list[2]}
stus.append(dict_item)
print(line_list)
f.close()
else:
print('file is not exist.')

except Exception as e:
    print(e)
finally:
    print('file_read methon is exec completed.')

def file_write():
try:
file_name = r'stu.txt'
if os.path.exists(file_name):
os.remove(file_name)
f = open(file_name, 'w', encoding='utf-8')
for item in stus:
line_text = "%s\t%s\t%s" % (item['id'], item['name'], item['age'])
f.write(line_text)
f.write('\n')
f.close()

except Exception as e:
    print(e)
finally:
    print('file_write methon exec over..')

def main():
file_read()
while True:
print_menu()
operate = input('请输入你想要的操作:')
if operate == "1":
add_stu()
elif operate == "2":
sname = input("输入学生姓名:")
search_stu(sname)
elif operate == "3":
pass
elif operate == "4":
sname = input("请输入删除学生的姓名:")
remove_stu(sname)
elif operate == "5":
query_all_stu()
else:
file_write()
print('exit......')
break

main()