как получить блок строк из текстового файла, используя python - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть большой файл, в котором есть строки, следующие шаблону:

Тип заголовка 1

============ =================

Тип общей строки 1

Тип заголовка 2

Common line type 2

Случайный текст

Тип заголовка 2

Common line type 2

Common line type 2

Тип заголовка 2

Common line type 2

Common line type 2

Common line type 2

Common line type 2

Тип заголовка 2

Common line type 2

Common line type 2

Тип заголовка 2

Common line type 2

Common line type 2

Тип заголовка 2

Тип заголовка 2

Common line type 2

Common line type 2

Тип заголовка 2

Тип заголовка 2

Случайный текст

Тип заголовка 2

==============================

Общая строка типа 1

Тип заголовка 2

Common line type 2

Некоторый случайный текст

Тип заголовка 2

Common line type 2

Common line type 2

Мой вопрос: как захватить блок строк в виде набора, как

-------------------------------- ------------ set1 ------------------------------------- -----------

Тип заголовка 1

===== ========================

Тип общей строки 1

Тип заголовка 2

Common line type 2

Случайный текст

Тип заголовка 2

Common line type 2

Common line type 2

Тип заголовка 2

Common line type 2

Common line type 2

Common line type 2

Common line type 2

Тип заголовка 2

Common line type 2

Common line type 2

Тип заголовка 2

Common line type 2

Common line type 2

Тип заголовка 2

Тип заголовка 2

Common line type 2

Common line type 2

Тип заголовка 2

Тип заголовка 2

Некоторые случайные текст

------------------------------------------- -set2 ------------------------------------------------

Тип заголовка 1

============================

Тип общей строки 1

Тип заголовка 2

Common line type 2

Случайный текст

Тип заголовка 2

Common line type 2

Common line type 2

Заголовок введите 2

Common line type 2

Common line type 2

Common line type 2

Common line type 2

Я не знаю, как использовать строку "=========================== = "для определения начала и конца блока строк.

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 18 апреля 2020

Вы можете использовать сравнение внутри для l oop, чтобы сделать это.

# only need this if you cannot guarantee first line is '===='
start_record = False
# assume you want to store all lines with in same '====' in same list
results = []
for line in file.readlines():
    # converting string to set will get all unique characters 
    # if only ==== exist in a line, start a new list for new block
    if set(line) == {'='}: 
        start_record = True
        results.append([])
        continue 
    if start_record:
        results[-1].append(line)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...