#python #csv
#питон #csv
Вопрос:
У меня есть этот 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
Я хотел бы начать чтение строк, начиная с идентификатора 1, затем сохранить student number
в переменную, а также выполнить for
цикл в диапазоне courseRegistered
, чтобы получить оценку, а затем сохранить ее в a list
. Как мне это сделать?
Комментарии:
1. Вы пробовали использовать DictReader ?
2. Формат вашего файла не совсем понятен. Вы отображаете, как выглядит файл, когда он загружается в электронную таблицу, такую как Excel, или вы отображаете фактический файл CSV? Если последнее, являются ли эти символы табуляции между столбцами? Похоже, что каждая оценка занимает свой собственный столбец.
Ответ №1:
Не совсем ясно, каков формат ввода (см. Мой комментарий к вашему вопросу). Предполагая, что каждый столбец в реальном файле 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]