You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python读取csv文件打印学生成绩输出换行问题修复咨询

问题修复方案

问题根因

文件的每一行末尾默认带有换行符\n,你没有处理就直接拆分内容,导致姓名字段的末尾携带了隐藏的换行符,打印时就会将得分自动换到下一行。

修复代码

直接在拆分每行内容前去掉尾部换行即可,同时可以优化得分求和的写法,避免手动拼接7次加法:

info = input("请输入学生信息文件路径: ")
ex = input("请输入练习得分文件路径: ")

names = {}

with open(info, encoding='utf-8') as f:
    for row in f:
        # 去除行尾的换行符
        row = row.rstrip('\n')
        p = row.split(';')
        if p[0] == "student number":
            continue
        names[p[0]] = f"{p[1]} {p[2]}"

exercises = {}

with open(ex, encoding='utf-8') as f:
    for row in f:
        row = row.rstrip('\n')
        p = row.split(';')
        if p[0] == "student number":
            continue
        # 批量转换为整数后求和
        exercises[p[0]] = sum(map(int, p[1:]))

for stu_id, name in names.items():
    if stu_id in exercises:
        print(f"{name} {exercises[stu_id]}")

补充说明

  • 加encoding='utf-8'是为了避免不同系统下的编码报错,如果你用的是纯英文内容可以去掉
  • 如果你的文件字段前后可能有多余空格,也可以把rstrip('\n')换成strip(),同时去除首尾所有空白字符

内容的提问来源于stack exchange,提问作者user17438591

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:06:05