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

如何在Python中读取IPmarks.txt并构建带正确索引的元素列表

解决方案

修改后的代码如下:

f = open("C:\\Users\\Administrator\\python\\IPmarks.txt","r")
grades = [x.strip().split(',') for x in f.readlines()]
f.close()  # 记得关闭文件,避免资源泄漏

# 测试输出
print(grades[0])  # 输出第一个学生的学号+成绩列表,例:['2021264', '10', '20', '50', '100']
print(grades[0][0])  # 输出第一个学生的完整学号:2021264
print(grades[0][1])  # 输出第一个学生的作业1分数:10

如果需要将成绩转换为整数类型(方便后续计算),可以进一步处理:

f = open("C:\\Users\\Administrator\\python\\IPmarks.txt","r")
grades = []
for line in f.readlines():
    parts = line.strip().split(',')
    # 学号保留字符串,后续成绩转成整数
    student_data = [parts[0]] + [int(score) for score in parts[1:]]
    grades.append(student_data)
f.close()

print(grades[0][1])  # 此时输出的是整数10,而非字符串

问题说明

你之前的代码仅对每行做了strip()处理(去除换行符和首尾空白),但没有将每行按逗号分割为独立字段,因此grades中的每个元素是完整的一行字符串,自然无法通过索引直接获取单个字段。使用split(',')可以将每行字符串拆分为以逗号为分隔符的子列表,这样就能通过索引访问学号或单个成绩。

更推荐使用with语句自动管理文件资源,无需手动关闭:

with open("C:\\Users\\Administrator\\python\\IPmarks.txt","r") as f:
    grades = [x.strip().split(',') for x in f]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:30:47