split bei jedem 2. Zeitlenumbruch?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
dave
User
Beiträge: 3
Registriert: Dienstag 21. Juni 2005, 05:43

Hi folks,

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

--dave
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich könnte mir vorstellen, das man das vielleicht mit einem re.split machen könnte...
Oder mach dir eine for-Schleife...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
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
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
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
Antworten