2016-07-14 7 views
0

ファイル内の特定の文字列を探していて、次の5行を出力するスクリプトを作成しています。ファイルの他の領域で見つけることができないので、私は次の行が特定の文字列を含んでいるかどうかを確認するために追加チェックを追加しようとしている場合、それを印刷しないでください:次の行に特定の文字列の後に特定の文字列があるかどうかを確認します

f = open(i, 'r') 
msg = 'somestring' 
for line in f: 
    if msg in line: # I would like to add a check if a specific (**somestring following 
        # the msg on the next line**) exists on the next line, string here 
     for string in range(5): 
      print line + ''.join(islice(f, 5)) 
+2

あなたはサンプルファイルと、ご希望の出力がどうなるかを共有してもらえますか? – smarx

+0

たとえば、次の文字列を探しています 説明1行目の# "#" \t ErrorCode = x; #2行目に –

+0

私の答えはあなたのために働いていませんでしたか? – smarx

答えて

0

初の試み:

from itertools import islice 

first_string = 'Description = "' 
second_string = 'ErrorCode' 

with open('test.txt') as f: 
    for line in f: 
     if first_string in line: 
      next_line = next(f) 
      if second_string in next_line: 
       print(next_line + ''.join(islice(f, 4))) 

のtest.txt:

Description = "Something" 
FalseAlarm = true 

Description = "Something" 
ErrorCode 0 
EstimatedInstallTime = 30 
EvaluationState = 1 
Something = Else 
More = Here 

出力:

ErrorCode 0 
EstimatedInstallTime = 30 
EvaluationState = 1 
Something = Else 
More = Here 
関連する問題