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