Для обычного вопроса программирования мне нужно извлечь несколько строк текста, которые находятся между 2 тегами (разделители, если мне нужно быть более конкретными).
Файл выглядит примерно так:
*some random text*
...
...
...
tag/delimiter 1
text 1 #extract
text 2 #extract
... #extract
... #extract
text n #extract
tag/ending_delimiter
*some random text*
...
...
...
tag/delimiter 2
text 1 #extract
text 2 #extract
... #extract
... #extract
text n #extract
tag/ending_delimiter
*some random text*
...
...
...
tag/delimiter n
text 1 #extract
text 2 #extract
... #extract
... #extract
text n #extract
tag/ending_delimiter
*some random text until the file ends*
Параметр end_delimiter везде одинаков.
Начальный разделитель, т.е. разделитель 1, разделитель 2 до n, взят из списка.
Подвох в файлепосле каждого начального разделителя есть несколько (менее 3) символов, которые в сочетании с начальным разделителем работают в качестве идентификатора для строк текста до конечного_длимитера, своего рода «uid», технически.
Пока что я попробовал следующее:
data_file = open("file_name")
block = []
found = False
for elem in list_of_starting_delimiters:
for line in data_file:
if found:
block.append(line)
if re.match(attribute_end, line.strip()):
break
else:
if re.match(elem, line.strip()):
found = True
block = elem
data_file.close()
Я также пытался реализовать ответы, предложенные в:
python - чтение файлаот и до определенных строк текста
, но безуспешно.
Реализация, которую я сейчас пробую, является одним из ответов по ссылке выше.
Любая помощь приветствуется.
PS: Использование Python 2.7, в PyCharm, в Windows 10.