rows
- генератор. Таким образом, первый цикл for
потребляет его, а второй цикл for
никогда не выполняется. Возможное решение было бы заставить rows
в списке:
rows = list(csv.reader(r))
Имейте в виду, что это заставит код потреблять больше памяти. Это может иметь значение, если файл имеет больший размер. В этом случае используйте решение @ zipa.