|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
为什么呀,难道是我建的文件路径不对吗,是同一路径呀。或者是我的主函数什么的写错了??大佬们帮忙看看是什么问题
- import re
- import os
- filename="student.txt"
- card_list = []
- headline=[]
- def load_info():
- """从文件导入学生信息"""
- fr=open("student.txt",'r')
- head=fr.readline()
- headline.append(head)
- fr.seek(0,0)
- lines=fr.readlines()
- flied=lines.pop(0).split(',')
- for eachline in lines:
- t=eachline.split('\t')
- t[7]=t[7].strip('\n')
- card_dict={
- 'num_str':t[0],
- 'name_str':t[1],
- 'class_str':t[2],
- 'sex_str':t[3],
- 'age_str':t[4],
- 'phone_str':t[5],
- 'qq_str':t[6],
- 'addr_str':t[7]
- }
- card_list.append(card_dict)
- print('学生信息导入成功!')
- fr.close()
- def save_info():
- fw=open("student.tex",'w')
- fw.write(" ",join(headline))
- for i in range(len(card_list)):
- fw.write(card_list[i]["num_str"]+"\t")
- fw.write(card_list[i]["name_str"]+"\t")
- fw.write(card_list[i]["class_str"]+"\t")
- fw.write(card_list[i]["sex_str"]+"\t")
- fw.write(card_list[i]["age_str"]+"\t")
- fw.write(card_list[i]["phone_str"]+"\t")
- fw.write(card_list[i]["qq_str"]+"\t")
- fw.write(card_list[i]["addr_str"]+"\n")
- print('学生信息保存成功!')
- fw.close()
- def show_menu():
- """显示菜单"""
- print()
- print('*'*70)
- print('欢迎使用【学生信息管理系统】')
- print()
- print('1.浏览全部')
- print('2.新增学生')
- print('3.搜索学生')
- print('4.修改学生')
- print('5.删除学生')
- print('6.保存信息')
- print('0.退出系统')
- print('*'*70)
- print()
- def new_student():
- """新增学生"""
- print('-'*70)
- print('新增学生')
- num_str=input('请输入学号:')
- name_str=input('请输入姓名:')
- class_str=input('请输入班级:')
- sex_str=input('请输入性别:')
- age_str=input('请输入年龄:')
- phone_str=input('请输入电话:')
- qq_str=input('请输入QQ:')
- addr_str=input('请输入地址:')
- card_dict={ 'num_str':num_str,
- 'name_str':name_str,
- 'class_str':class_str,
- 'sex_str':sex_str,
- 'age_str':age_str,
- 'phone_str':phone_str,
- 'qq_str':qq_str,
- 'addr_str':addr_str }
- card_list.append(card_dict)
- print('添加%s的信息成功'%name_str)
- def show_all():
- """显示所有学生信息"""
- print('-'*70)
- print('显示所有学生信息')
- if len(card_list) == 0:
- print('当前没有任何学生记录,请使用新增功能添加学生信息')
- return
- for name in ["学号","姓名","班级","年龄","电话","QQ","地址"]:
- print(name,"\t",end=" ")
- print(' ')
- print('-'*70)
- #遍历学生信息列表依次输出字典信息
- for card_dict in card_list:
- print('%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s'% (card_dict['num_str'],
- card_dict['name_str'],
- card_dict['class_str'],
- card_dict['sex_str'],
- card_dict['age_str'],
- card_dict['phone_str'],
- card_dict['qq_str'],
- card_dict['addr_str']))
- def search_student():
- """搜索学生信息"""
- print('-'*70)
- print('搜索学生信息')
- find_name = input('请输入搜索的姓名:')
- for i in range(len(card_list)):
- if find_name == card_list[i]['name_str']:
- print ("学号\t姓名\t班级\t性别\t年龄\t电话\tQQ\t地址")
- print('='*70)
- print('%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s' % (card_list[i]['num_str'],
- card_list[i]['name_str'],
- card_list[i]['class_str'],
- card_list[i]['sex_str'],
- card_list[i]['age_str'],
- card_list[i]['phone_str'],
- card_list[i]['qq_str'],
- card_list[i]['addr_str']))
- break
- else:
- print('抱歉,没有找到%s'%find_name)
- def update_student():
- """修改学生信息"""
- find_num = input('请输入待修改学生学号:')
- for i in range(len(card_list)):
- if find_num == card_list[i]['num_str']:
- print("学号\t姓名\t班级\t性别\t年龄\t电话\tQQ\t地址")
- print('%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n'%(card_list[i]['num_str'],
- card_list[i]['name_str'],
- card_list[i]['class_str'],
- card_list[i]['sex_str'],
- card_list[i]['age_str'],
- card_list[i]['phone_str'],
- card_list[i]['qq_str'],
- card_list[i]['addr_str']))
- card_list[i]['name_str'] = input_info(card_list[i]['name_str'],'姓名:')
- card_list[i]['class_str'] = input_info(card_list[i]['class_str'], '班级:')
- card_list[i]['sex_str'] = input_info(card_list[i]['sex_str'], '性别:')
- card_list[i]['age_str'] = input_info(card_list[i]['age_str'], '年龄:')
- card_list[i]['phone_str'] = input_info(card_list[i]['phone_str'], '电话:')
- card_list[i]['qq_str'] = input_info(card_list[i]['qq_str'], 'QQ:')
- card_list[i]['addr_str'] = input_info(card_list[i]['addr_str'], '地址:')
- print('修改学生信息成功!!!')
- break
- else:
- print('抱歉,没有找到学号为%s的学生'%find_num)
- def input_info(dict_value,tip_message):
- """
- :param dict_value: 字典中原有的值
- :param tip_message: 输入的提示文字
- :return: 如果用户输入了内容,就返回内容,负责返回字典中原有的值
- """
- result_str = input(tip_message)
- if len(result_str)>0:
- return result_str
- else:
- return dict_value
- def delete_student():
- """删除学生信息"""
- find_num = input('请输入待删除学生学号:')
- for i in range(len(card_list)):
- if find_num == card_list[i]['num_str']:
- del card_list[i]
- print('删除学生信息成功!!')
- #以下为主程序
- load_info()
- def main():
- print("学生信息已导入!")
- while True:
- show_menu()
- action_str = input("请选择希望执行的操作:")
- print("你选择的操作是%s"%action_str)
- if action_str in ["1","2","3","4","5","6"]:
- if action_str == "1":
- show_all()
- elif action_str == "2":
- new_student()
- elif action_str == "3":
- search_student()
- elif action_str == "4":
- update_student()
- elif action_str == "5":
- delete_student()
- elif action_str == "6":
- save_info()
- elif action_str == "0":
- print("欢迎再次使用【学生信息管理系统】:")
- break
- else:
- print("输入错误,请重新输入:")
- if __name__ == '__main__':
- main()
复制代码 |
|