2016-08-09 31 views
1

Versuchen Sie eine Python-Split auf eine "leere" Zeilenumbruch, aber keine anderen neuen Zeilen. Ich habe ein paar andere Beispiele ausprobiert, die ich gefunden habe, aber keiner von ihnen scheint zu funktionieren.Python "Split" auf leere neue Zeile

Daten Beispiel:

 
(*,224.0.0.0/4) RPF nbr: 96.34.35.36 Flags: C RPF P 
    Up: 1w6d 

(*,224.0.0.0/24) Flags: D P 
    Up: 1w6d 

(*,224.0.1.39) Flags: S P 
    Up: 1w6d 

(96.34.246.55,224.0.1.39) RPF nbr: 96.34.35.36 Flags: RPF 
    Up: 1w5d 
    Incoming Interface List 
    Bundle-Ether434 Flags: F A, Up: 1w5d 
    Outgoing Interface List 
    BVI100 Flags: F, Up: 1w5d 
    TenGigE0/0/0/3 Flags: F, Up: 1w5d 
    TenGigE0/0/1/1 Flags: F, Up: 1w5d 
    TenGigE0/0/1/2 Flags: F, Up: 1w5d 
    TenGigE0/0/1/3 Flags: F, Up: 1w5d 
    TenGigE0/1/1/1 Flags: F, Up: 1w5d 
    TenGigE0/1/1/2 Flags: F, Up: 1w5d 
    TenGigE0/2/1/0 Flags: F, Up: 1w5d 
    TenGigE0/2/1/1 Flags: F, Up: 1w5d 
    TenGigE0/2/1/2 Flags: F, Up: 1w5d 
    Bundle-Ether234 (0/3/CPU0) Flags: F, Up: 3d16h 
    Bundle-Ether434 Flags: F A, Up: 1w5d 

ich auf etwas teilen möchten, dass eine neue Linie online ist und nur ein Newline.

Beispiel-Code ist unten:

myarray = [] 
myarray = output.split("\n") 
for line in myarray: 
    print line 
    print "Next Line" 

ich tun haben die "re" Bibliothek importiert.

+3

Also ... Sie wollen nur auf zwei Zeilen in Folge aufteilen? Eine Zeile mit Nichts als ein Zeilenumbruch darauf sind nur zwei Zeilenumbrüche, oder? – James

Antwort

2

Es ist ziemlich einfach, wenn man bedenkt, was in der leeren Zeile ist. Es ist nur die die Newline-Zeichen, so Splitting auf leere Zeile würde Splitting auf zwei Zeilenumbrüche in Folge sein (einer aus der frü nicht-leeren Zeile, ist eine die ‚ganze‘ leere Zeile.

myarray = output.split("\n\n") 
for line in myarray: 
    print line 
    print "Next Line" 
+1

'myarray = []' ist nutzlos. – DeepSpace

+1

Sie haben Recht, behoben. – Kiraa

1

Eine leere Zeile sind nur zwei neue Linien. So Ihre einfachste Lösung wahrscheinlich für zwei neue Linien zu prüfen ist (sofern Sie eine Situation zu erwarten haben, wenn Sie mehr als zwei Leerzeilen in Folge haben werden).

import os 
myarray = [] #As DeepSpace notes, this is not necessary as split will return a list. No impact to later code, just more typing 
myarray = output.split(os.linesep + os.linesep) ##use os.linesep to make this compatible on more systems 

Das wäre wo ich überhaupt anfangen würde

+0

'myarray = []' ist nutzlos. – DeepSpace

+0

@DeepSpace - Ich stimme zu, ich passte die OP-Linien. Ich werde es kommentieren – Lost

+0

Danke für die Antwort. Ich konnte die "Bäume durch den Wald" nicht sehen. Das Aufzeichnen der beiden Zeilenumbrüche funktioniert einwandfrei. –