2016-07-14 10 views
0

Ich erstelle ein Skript, in dem ich nach einer bestimmten Zeichenfolge in einer Datei suchen, dann drucken Sie die nächsten 5 folgenden Zeilen, jedoch die ursprüngliche Zeichenfolge könnte in anderen Bereichen der Datei gefunden werden und sind unnötig, also ich versuche, eine zusätzliche Prüfung hinzuzufügen, um zu sehen, wenn die nächste Zeile eine bestimmte Zeichenfolge enthält, dann den Inhalt drucken, wenn nicht, nicht drucken:Finden Sie, ob eine bestimmte Zeichenfolge nach einer bestimmten Zeichenfolge in der folgenden Zeile existiert

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

Können Sie ein Beispiel-Datei teilen und was Ihre gewünschte Ausgabe wäre? – smarx

+0

zum Beispiel sehe ich die folgenden Zeichenfolgen Beschreibung = "" # in der ersten Zeile \t ErrorCode = x; # in der zweiten Zeile –

+0

Hat meine Antwort nicht für Sie funktioniert? – smarx

Antwort

0

Erster Versuch:

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 

Ausgang:

ErrorCode 0 
EstimatedInstallTime = 30 
EvaluationState = 1 
Something = Else 
More = Here 
Verwandte Themen