Seite 1 von 1

split bei jedem 2. Zeitlenumbruch?

Verfasst: Montag 27. Juni 2005, 12:19
von dave
Hi folks,

wie lässt sich bei einem string ein split() bei jedem zweiten Zeilenumbruch realisieren?

--dave

Verfasst: Montag 27. Juni 2005, 12:28
von jens
Ich könnte mir vorstellen, das man das vielleicht mit einem re.split machen könnte...
Oder mach dir eine for-Schleife...

Verfasst: Montag 27. Juni 2005, 15:20
von XT@ngel als Gast
Ich bin mir nicht sicher on ich die Frage jetzt richtig verstanden habe..

Code: Alles auswählen

fd = file("test.txt")
c = 0
for line in fd.readlines():
    if c % 2:
        print line.split()
    else:
        print line
    c = c + 1
MfG
Andreas

Verfasst: Montag 27. Juni 2005, 16:51
von mawe
Hi!

Code: Alles auswählen

text ="""hello
you
fools
how
about
this"""
splitted = text.split("\n")
liste = ["\n".join(splitted[i:i+2]) for i in range(0,len(splitted),2)]
print liste
:)

Gruß, mawe

Verfasst: Montag 27. Juni 2005, 17:48
von jens
Und meine Variante:

Code: Alles auswählen

import re

txt = """1. Zeile
2. Zeile
3. Zeile
4. Zeile
5. Zeile
6. Zeile
7. Zeile"""

print re.findall(r"(.*?\n.*?)\n", txt )
Die Ignoriert allerdings die letzte Zeile :( Funktioniert also nur, bei gerader Anzahl...

Verfasst: Montag 27. Juni 2005, 17:58
von joe
jens hat geschrieben:

Code: Alles auswählen

print re.findall(r"(.*?\n.*?)\n", txt )
Auf exakt die lösung bin ich auch zuerst gekommen. Unschöner Workaround wäre txt+"\n\n".
Ansonsten:

Code: Alles auswählen

print [e for e in re.split(r"(.*\n.*?)\n",txt) if e]
joe