Необходимо добавить в массив элементы от 'Суммы премии' до определенного элемента
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()