Я читаю строку файла на строку в цикле for и выполняю цикл while, модифицируя цикл для итератора, как показано ниже:
for line in archive:
...
if re.search("{",line):
while not re.search("}",line):
...
line = next_line
...
Полный код ниже
import re
a = ["{\n","int b,c,d\n","#pragma omp parallel for\n","for (int i=0;i<10;i++)\n",'1\n','2\n','3\n','\n4',"}\n",'6','7','8','9','0','z','y']
listwh=[]
a_it=iter(a)
text =[]
flagcb=0
for j in a:
print(j)
for line in a_it:
if re.search("{",line):
flagcb=flagcb+line.count("{")-line.count("}")
while(flagcb>0):
listwh.append(line)
print(flagcb)
print(line)
flagcb=flagcb+line.count("{")-line.count("}")
line = next(a_it)
text.append(line)
for i in listwh:
print(i)
print("\ninterval\n")
#for i in text:
# print(i)
Мне нравится оставаться в цикле while, пока условие остановки, которое зависит от чтения архива.