Я попытался найти похожие вопросы, но не смог найти. Пожалуйста, отметьте как дубликат, если есть похожие вопросы.Чтение повторяющейся информации из файла в другом порядке в Python
Я пытаюсь выяснить способ чтения и сбора нескольких сведений из одного файла. Здесь в файле Block-A, B & C повторяются в случайном порядке, а Block-C имеет более одной информации для захвата. Каждый блок заканчивается текстом «END». Здесь входной файл:
Block-A:
(info1)
END
Block-B:
(info2)
END
Block-C:
(info3)
(info4)
END
Block-C:
(info7)
(info8)
END
Block-A:
(info5)
END
Block-B:
(info6)
END
Вот мой код:
import re
out1 = out2 = out3 = ""
a = b = c = False
array=[]
with open('test.txt', 'r') as f:
for line in f:
if line.startswith('Block-A'):
line = next(f)
out1 = line
a = True
if line.startswith('Block-B'):
line=next(f)
out2 = line
b = True
if line.startswith('Block-C'):
c = True
if c:
line=next(f)
if not line.startswith('END\n'):
out3 = line
array.append(out3.strip())
if a == b == c == True:
print(out1.rstrip() +', ' + out2.rstrip() + ', ' + str(array))
a = b = c = False
array=[]
Спасибо заранее за ваши ценные входы.
он прекрасно работает. Очень эффективный. Есть ли способ распечатать результаты после чтения блока-A, B & C каждый раз? – Bharathi
Вы можете распечатать его в 'if line == 'End':' code. – Barmar