2017-01-09 1 views
0

Ich habe die FAQs und ein paar andere REGEX Seiten durchsucht, aber keine Antwort auf meine Frage gefunden. Während ich erfolgreich das Spiel ausführen kann, kann ich nicht den besten Weg finden, um dann die nächste Zeile nach dem Spiel Verweis auf eine Liste zu drucken oder hinzufügen, usw. Hier ist mein pogramPython 3.4 - Verwenden von REGEX, um eine Zeichenfolge abzustimmen und dann die folgende Zeile zu kopieren

with open("input.txt", mode='r') as sourcefile, open("output.txt", mode='w') as destinationfile: 
    for codeline in sourcefile: 
     if (re.match("interface GigabitEthernet0/[0123]", codeline)): 
      print(codeline) 

Meine Eingabedatei das hat folgende ...

input.txt

interface GigabitEthernet0/0 
Ip Address 10.10.10.10 255.255.255.0 

Als ich dies ausführen ich folgendes im Gegenzug ...

interface GigabitEthernet0/0 

Aber ich will diese Stelle bekommen ...

Ip Address 10.10.10.10 255.255.255.0 

Ich habe ein bisschen ganz an diesem Punkt in meinem eigenen herausgefunden, aber diese triviale Herausforderung hat mich stolpern. Wie drucke ich die nächste Zeile aus dem Iterator, wenn sie mit der Regex-Sequenz übereinstimmt?

Vielen Dank im Voraus, wenn Sie mir helfen können. Sorry, aber das ist mein erster Post bei Stack. Wenn ich das nicht richtig formatiere, versuche ich es.

Antwort

0

Nur ein Flag setzen Sie die folgende Zeile zu drucken, wie gut

print_next = False 
for codeline in sourcefile: 
    if print_next: 
     print(codeline) 
     print_next = False 
    elif (re.match("interface GigabitEthernet0/[0123]", codeline)): 
     print_next = True 
+0

Vielen Dank für Ihre Antwort, ich werde es ausprobieren und kurz überprüfen! – ChicagoResident

0

konnte ich die nächste() verwenden, geben Sie mein Ziel zu erreichen.

Vielen Dank.

Verwandte Themen