Python читает определенные строки текста

У меня проблема с чтением определенных строк. Это похоже на вопрос, на который здесь дан ответ: python - чтение файла из и в определенные строки текста. Разница в том, что у меня нет фиксированной конечной отметки. Позвольте мне показать пример:

--------------------------------
\n
***** SOMETHING *****     # i use this as my start
\n
--------------------------------
\n
data of interest
data of interest
data of interest
\n
----------------------- #this will either be dashes, or EOF
***** SOMETHING *****
-----------------------

Я попытался сделать что-то похожее на приведенную выше ссылку, но я не могу создать оператор if, чтобы разорвать цикл, так как я не знаю, будет ли это EOF или нет.

3 ответа

Решение

Как насчет этого:

def getBlocks(filepath):
    with open(filepath) as f:
        blocks = []
        go = False
        for line in f:
            if line.strip() == startDelimiter:
                block = ''
                go = True
            if go:
                block += line
            if line.strip() == endDelimiter:
                blocks.append(block)
                block = ''
                go = False
        if block:
            blocks.append(block)
    return blocks

Прелесть в том, что если вы нажмете EOF, файл перестанет повторяться.

ended = False
for line in f:
    ended = line == MY_END_MARKER

Не могли бы вы просто сделать

parts = my_file.read().split("-----------------------")
print parts
Другие вопросы по тегам