python - 从特定行开始读取,然后在该行内循环
问题描述
我有这个 csv 文件,下面是文件的示例:
Number of students 80
Courses available 120
id student number coursesRegistered scores
1 20001 5 90 80 70 90 61
2 20002 4 40 60 75 80
我想从 id 1 开始读取行,然后存储student number
到一个变量中,并for
在 的范围内进行循环courseRegistered
以获得分数,然后将其存储到list
. 我怎么做?
解决方案
输入格式是什么并不完全清楚(请参阅我对您的问题的评论)。假设在实际的 CSV 文件中每列由逗号分隔,并且每个分数都是单独的列,那么以下应该成功:
import csv
with open('test.csv', 'r', newline='') as f:
for _ in range(4): f.readline() # skip first 4 lines
rdr = csv.reader(f, delimiter=',')
for row in rdr:
student_number = int(row[1])
courses_registered = int(row[2])
scores = list(map(int, row[3:3+courses_registered]))
print(student_number, scores)
印刷:
20001 [90, 80, 70, 90, 61]
20002 [40, 60, 75, 80]
推荐阅读
- java - 多模块项目 - gradle build 卡住
- angular - Angular 使用带有 Jasmine TypeError 的 Karma:this.Service。
不是 Lifecycle Hook 中的函数 - node.js - Typeorm:在单个连接中使用多个数据库 Postgresql - nodejs
- angular - Angular 单元测试点击事件,仅使用 Jasmin 和 Karma 执行 navigateByUrl
- angular - 如何防止任何执行,直到从 Angular 中的服务器获得响应?
- shell - 在 Shell 中转换字符串
- postgresql - Asp.net core mvc 迁移数据库
- sql - BigQuery:在欧盟和美国位置查询表的最佳实践
- android - 使用导航组件在嵌套导航图之间导航
- .net - 跨服务器的 IIS 文化不一致