txt读写完后分数的分割变成\t还改不掉?

任务描述:给定成绩score.txt文件,综合利用所学知识,实现如下功能:
操作流程:
1.导入score.txt ,循环读取数据行,生成成绩字典
#d={'班有荣': {'语文': 60, '数学': 65, '英语': 30, '物理': 45, '政治': 56, '历史': 60},...}
2.构建成绩查询函数
def qureyscore(name):
#根据姓名查询成绩详细信息
#d[name]
3.构建总成绩名次查询函数
def rank(name):
#计算每个学生的总成绩
#根据姓名查询名次(按总成绩)
4.在以上函数基础上构建单科排名
#单科排名
4.自动生成成绩分析报告
def report_branch(name):
#根据当前学生的各科排名及总排名,生成总体优良信息(排名在前1/3认定为“优”,排名在2/3认定为“良”,排名在后1/3认定为“差”).
#偏科信息并针对偏科信息给出报告(认定为“优”的科目仅1门为“严重偏科”,认定为“优”的科目有2门认定为“偏科”)。
5.生成7选3建议报告
def report_select(name ):
#根据当前学生的各科排名情况,取排名最好的三门课程作为选科建议输出,若有并列科目排名,输出所有组合情况。
这个是我的代码

fr=open('score.txt','r')
dic={}
for line in fr:
    value=line.strip().split('/r')
    for i in range(53):
        for j in range(30):
            dic['value[i]']=value[j]
print(dic)
fr.close()
dic1={}
s={}
for i in range(53):
    for j in range(40):
        #s=dic[i]
        print(s)
        #dic1[i].append(s)
print(dic1)




图片

img


序号    姓名    生物    地理    技术    物理    化学    政治    历史
1    班有荣    60    65    30    45    56    60    59
2    陈宏    52    60    37    47    42    71    58
3    陈洪兵    72    70    34    56    34    79    56
4    陈洪艳    81    25    36    67    45    80    47
5    陈灵琳    80    71    62    72    43    89    72
6    邓华义    82    34    42    23    55    90    45
7    邓亮    72    35    45    48    57    92    56
8    邓清龙    34    46    48    59    53    48    51
9    封兴菊    81    32    60    63    41    56    32
10    顾富豪    80    47    61    78    43    67    79
11    何思勇    88    58    72    42    36    61    81
12    何永刚    87    49    54    36    27    36    34
13    胡伟    79    81    67    66    23    83    79
14    黄洋    73    83    71    72    34    93    78
15    黄子芹    64    79    69    30    46    32    71
16    江均璘    66    80    28    45    28    41    63
17    姜宇    67    72    38    14    71    46    57
18    蒋明佯    54    84    45    27    70    48    42
19    蒋羽    47    30    67    34    38    52    38
20    况娜    23    45    78    68    47    53    36
21    黎应莲    46    26    51    79    25    35    34
22    李焕然    67    70    61    21    67    42    33
23    李美霖    90    82    87    83    86    90    81
24    李智慧    42    27    32    45    29    46    56
25    刘磊    35    83    45    67    87    57    67
26    刘帅    67    66    47    22    80    60    65
27    龙绽辉    78    47    58    18    47    61    62
28    罗飞    62    28    61    47    35    68    34
29    潘丹丹    85    92    88    80    76    91    88
30    谭辉    87    90    78    85    89    90    86
31    谭明娇    42    39    77    44    28    79    81
32    唐丽    34    45    26    46    43    72    62
33    唐念    25    67    41    37    51    63    56
34    王景锋    60    72    35    40    25    89    73
35    王婷    51    42    37    78    39    60    73
36    吴忌    43    37    24    48    24    51    34
37    吴秦邮    31    45    33    61    57    72    47
38    徐民    72    43    52    55    63    26    73
39    杨成    38    13    63    37    21    68    52
40    杨家佳    40    71    67    71    68    81    79
41    杨杰    71    83    80    50    71    70    62
42    袁伟烈    80    81    53    67    60    87    88
43    袁野    36    42    34    56    47    32    39
44    张金会    78    45    26    28    31    78    69
45    张银    38    20    48    35    19    61    34
46    周磊    78    23    56    43    23    57    61
47    李洪浩    81    31    79    51    46    63    78
48    李南    86    81    80    39    54    72    36
49    刘习美    72    24    32    18    35    79    58
50    罗毅    80    35    63    37    27    44    47
51    唐明玉    73    46    64    44    79    25    28
52    李悦英    60    72    68    51    83    76    69
53    何国涛    61    43    71    35    34    81    70

你score.txt文件的格式是什么?

value=line.strip().split('/r') 应该是\t或者空格 , 不是/r
改成
value=line.strip().split('\t')

比如你score.txt文件的格式是

序号    姓名    语文    数学    英语
001    王某某    77    66    88
002    李某某    87    68    75

代码是

fr=open('score.txt','r',encoding='utf-8')
dic={}
ha=fr.readline().strip().split('\t')
for line in fr:
    value=line.strip().split('\t')
    sd = {}
    for j in range(2,len(value)):
        sd[ha[j]]=value[j]
    dic[value[1]]=sd
print(dic)
fr.close()

结果

img

txt循环读行然后应该去掉 \n 啊,每行后面都有换行符

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632