Оператор break в цикле for

Есть csv файл, который содержит шапку, т.е. она забирает первые N строк (кол-во строк может быть разное), он не стандартизирован. Также есть последние N строк, которые имеют просто общую информацию по файлу, их я тоже отбрасываю во втором цикле. Пишу цикл, который их пропускает пока не найдет названия столбцов. Все работает, цикл завершаю командой break. При использовании команды break естественно, он мне не возвращает уже строку с заголовками. Вопрос можно ли как продолжить парсить csv, сохранив корретку итератор на строке заголовка? Или может есть какой-то другой способ выполнения пропуска строк. Вот кусок кода. Спасибо.

with open('Chapter1 B-A.csv', 'r', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=';')
    for row in reader:
        if row[0] == '№ п/п':
            break
        else:
            continue
    for i, row in enumerate(reader):
        if row[0] == '':
            break
        else:
            print(row)

Ответы (1 шт):

Автор решения: Vadim Tukaev

Вамъ нужна машина состояній. Вотъ маленькій примѣръ. Программа пропускаетъ всё между буквами R и D, включая ихъ самихъ. Можно реализовать и гораздо болѣе сложную логику.

state = 0

for i in "ABRACADABRA":
    if state == 0:
        if i == "R":
            state = 1
        else:
            print(i)
    elif state == 1:
        if i == "D":
            state = 2
    else:
        print(i)
→ Ссылка