鱼C论坛

 找回密码
 立即注册
查看: 1108|回复: 4

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

[复制链接]
发表于 2021-12-2 20:41:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-3 09:41:41 | 显示全部楼层
代码看起来乱乱的,你应该先画个流程图。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-3 13:27:29 | 显示全部楼层
贴报错信息勒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-3 14:26:43 | 显示全部楼层
fw.write(" ",join(headline))  # 这里应该是 " ".join(headline) 符号写错了.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-3 21:21:29 | 显示全部楼层

好眼力,低级错误我谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 17:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表