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 *****
-----------------------

上記のリンクと同様のことを試みましたが、EOFになるかどうかわからないため、ループを中断するifステートメントを作成できません。

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 に答える