Необходимо добавить в массив элементы от 'Суммы премии' до определенного элемента

file = open('ZP3', 'r', encoding='UTF-8')
lines = file.readlines()
worker = []
premiy = []
counter = 0
for line in lines:
    if line == 'ПРЕМИЯ\n':
        del line
        break
    else:
        worker.append(line)
print(worker)
for line in range(len(lines)):
    if lines[line] == 'СУММА ПРЕМИИ\n':
        premiy.append(lines[line+counter])
        counter += 1
    elif line == '':
        break
print(premiy)

Я понимаю, что я каждую строку сравниваю с 'Сумма премии', но не могу понять как сделать, чтобы добавлять от "Сумма премии' до определенной строки.


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

Автор решения: CrazyElf

Заведите булеву переменную, как бы флаг, выставляйте её когда найдёте нужную строку и дальше пока эта переменная True и не нашлась следующая ключевая строка, добавляйте строки. Примерно так:

is_copy_mode = False
for line in lines:
    if line == 'СУММА ПРЕМИИ\n':
        is_copy_mode = True
    elif line == '':
        break
    if is_copy_mode:
        premiy.append(line)

Ещё вариант, но если этих строк может не быть в списке, то вылетит исключение:

line1 = lines.index('СУММА ПРЕМИИ\n')
line2 = lines.index('', line1)
premiy = lines[line1:line2].copy()
→ Ссылка