Проверяемые столбцы не совпадают. Глядя на столбцы в lines
:
>>> lines[0]
'Year,City,Sport,Discipline,NOC,Event,Event gender,Medal'
«Спорт» - columns[2]
, а страна - columns[4]
. (Вместо этого вы проверяете 4 и 5.) Кроме того, вы проверяли "дисциплину", которая является c в данном виде спорта. Например, «лыжный спорт» - это спорт, а «горные лыжи» - это дисциплина внутри него. Поэтому каждый оператор if
должен быть изменен на:
... and columns[2] == 'Curling' and columns[4] == 'NOR' ...
Другие улучшения:
при работе с числами, такими как «Год», преобразовать их в int
s вместо сравнения строк:
if int(columns[0]) > 2001 and ...
В этом случае у вас не будет проблем с этим, поскольку они 4-di git лет, и вы сравниваете с '2001'
, строка 4-di git, поэтому сравнение строк работает.
Используйте модуль CSV для анализа файлов CSV
Измените структуру if
утверждений, чтобы они не повторялись. Поскольку вас интересуют только медали 2001
и далее Gold
, это должен быть топ-уровень if
. Остальные проверки, если таковые имеются, должны быть вложены под него.