0

我在阅读特定行时遇到问题。它类似于此处回答的问题: 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。

4

3 回答 3

0

这个怎么样:

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
于 2012-07-30T20:37:08.400 回答
0

美妙之处在于,如果您点击 EOF,文件将停止迭代。

ended = False
for line in f:
    ended = line == MY_END_MARKER
于 2012-07-30T20:48:03.660 回答
0

你不能就这样吗

parts = my_file.read().split("-----------------------")
print parts
于 2012-07-30T20:54:25.637 回答