如何在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
相关产品推荐
相关产品推荐

