Gacy 发表于 2021-12-2 20:41:11

我已经建了文件了,但是导入不到

为什么呀,难道是我建的文件路径不对吗,是同一路径呀。或者是我的主函数什么的写错了??大佬们帮忙看看是什么问题

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=t.strip('\n')
      card_dict={
            'num_str':t,
            'name_str':t,
            'class_str':t,
            'sex_str':t,
            'age_str':t,
            'phone_str':t,
            'qq_str':t,
            'addr_str':t
      }
      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["num_str"]+"\t")
      fw.write(card_list["name_str"]+"\t")
      fw.write(card_list["class_str"]+"\t")
      fw.write(card_list["sex_str"]+"\t")
      fw.write(card_list["age_str"]+"\t")
      fw.write(card_list["phone_str"]+"\t")
      fw.write(card_list["qq_str"]+"\t")
      fw.write(card_list["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['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['num_str'],
                                                         card_list['name_str'],
                                                         card_list['class_str'],
                                                         card_list['sex_str'],
                                                         card_list['age_str'],
                                                         card_list['phone_str'],
                                                         card_list['qq_str'],
                                                         card_list['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['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['num_str'],
                                                      card_list['name_str'],
                                                      card_list['class_str'],
                                                      card_list['sex_str'],
                                                      card_list['age_str'],
                                                      card_list['phone_str'],
                                                      card_list['qq_str'],
                                                      card_list['addr_str']))

            card_list['name_str'] = input_info(card_list['name_str'],'姓名:')
            card_list['class_str'] = input_info(card_list['class_str'], '班级:')
            card_list['sex_str'] = input_info(card_list['sex_str'], '性别:')
            card_list['age_str'] = input_info(card_list['age_str'], '年龄:')
            card_list['phone_str'] = input_info(card_list['phone_str'], '电话:')
            card_list['qq_str'] = input_info(card_list['qq_str'], 'QQ:')
            card_list['addr_str'] = input_info(card_list['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['num_str']:
            del card_list
      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()



suchocolate 发表于 2021-12-3 09:41:41

代码看起来乱乱的,你应该先画个流程图。

Stubborn 发表于 2021-12-3 13:27:29

贴报错信息勒

z5560636 发表于 2021-12-3 14:26:43

fw.write(" ",join(headline))# 这里应该是 " ".join(headline) 符号写错了.

Gacy 发表于 2021-12-3 21:21:29

z5560636 发表于 2021-12-3 14:26


好眼力,低级错误我{:10_266:}谢谢
页: [1]
查看完整版本: 我已经建了文件了,但是导入不到