2016-09-01 12 views
1
with open("file.txt") as f: 
    lines = f.readlines() 
    lines = [l for l in lines if "util.exe" in l] 
with open("Lines.txt", "w") as f1: 
    new=f1.writelines(lines) 

これは、 "util.exe"というテキストを持つ行を書き込む私のコード例ですが、私は以下の行を "私はここでpythonを使用してテキストファイルからsepearte行を読み取る方法

を読む必要がある "util.exe" ライン。

たとえば、私はこれらの行のテキストファイルを持っている。

1/16 joc_... 

cd D:\cmd\find\joc 

util.exe line 

のPCM WAVラインIは、ラインpcm wav line i need to readを読む必要があります以下はです

私にこれを案内してもらえますか?

答えて

1

ここには推奨される解決策があります。行を列挙し、util.exeの後の行にアクセスして、リストの理解度を変更してください。

with open("file.txt") as f: 
    lines = f.readlines() 
    lines = [lines[index + 1] for index, l in enumerate(lines) if "util.exe" in l] 
with open("Lines.txt", "w") as f1: 
    new=f1.writelines(lines) 

私はここで変更したスクリプトを実行したときので、結果は次のとおりです:だからここにコード変更された例の 内容

"file.txtは" - >

this is a test line 
and here is another one 
util.exe is here 
this one should be recorded 
but this one should not 
now it appears at the end util.exe 
this should also be saved. finally, 
another case 
the test phrase util.exe is in the middle 
where this should be saved 
but not this one 

です出力ファイル "Lines.txt":

this one should be recorded 
this should also be saved. finally, 
where this should be saved 
+0

ごめんなさい...ありがとうございました。これは問題ありません – lotus

0
destLines = [] 
with open("file.txt") as fp: 
    lines = fp.readlines() 
    index = 0 
    for line in lines: 
     index += 1 
     if 'exe' in line and len(lines) >= index: 
      destLines.append(lines[index]) 

with open("lines.txt", "w") as fp: 
    fp.writelines(destLines) 
+0

実際に私は "exe"の下にある行を読む必要があります。下にある行。 – lotus

+0

@lotus申し訳ありませんが、それはタイプミスです。固定されているかもしれません。コードが速すぎるかもしれません... – armnotstrong

関連する問題