0

大きなテキスト ファイルからいくつかの情報をかき集めようとしていて、ちょっとした問題が発生しました。

このファイルには start_needle を ID として持つ項目がいくつかありますが、それらは順不同です。end_needle は、アイテムの終わりを示す文字列です。開始点を取得することはできますが、end_needle の次の即時インスタンスが発生する行をどのように引き出すのでしょうか?

基本的に、「start_needle の後に end_needle の次のインスタンスを見つける」

start_needle = '725160001'
end_needle = '* * END ITEM * *'

filename = 'LAS3300Combined.txt'
target = open('file.txt', 'w')

start_list = []

with open(filename) as myFile:
    for num, line in enumerate(myFile, 1):
        if start_needle in line:
            start_list.append(num)
4

1 に答える 1

0

開始時と終了時にブール値フラグを切り替えます。

start_list = []
end_list = []
started = False

with open(filename) as myFile:
    for num, line in enumerate(myFile, 1):
        if not started and start_needle in line:
            start_list.append(num)
            started = True
        if started and line.endswith(end_needle):
            end_list.append(num)
            started = False
于 2013-10-09T01:08:34.123 に答える