Leerzeilen in Textdatei erkennen und entfernen

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
bankkind
User
Beiträge: 106
Registriert: Freitag 14. September 2007, 23:02
Wohnort: Teltow
Kontaktdaten:

Hallo,
ich will eine Textdatei entsprechend bereinigen und dazu möchte ich auch Leerzeilen entfernen. Gibt es hierzu eine gute Möglichkeit?

bankkind
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Hier die Grundidee:

Code: Alles auswählen

for line in in_file:
    if not line.strip(): continue
    out_file.write(line)
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Code: Alles auswählen

deininhalt = deininhalt.replace('\n\n', '\n')
:-)

Oder so:

Code: Alles auswählen

deininhalt = '\n'.join((line for line in deininhalt.split('\n') if line))
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Code: Alles auswählen

>>> import string
>>> fp = open("/home/sebastian/test.txt", "r")
>>> filter(string.strip, fp.readlines())
['null\n', 'eins\n', 'zwei\n', 'drei\n', 'vier\n']
>>> fp.close()
mit

Code: Alles auswählen

null
eins

zwei


drei



vier



Das Leben ist wie ein Tennisball.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

dauerbaustelle: deine Loesungen lesen die Datei komplett in den Speicher und loeschen nur Leerzeilen, die wirklich leer sind (also keine Zeilen, die nur Spaces oder Tabs enthalten).
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Rebecca hat geschrieben:dauerbaustelle: deine Loesungen lesen die Datei komplett in den Speicher und loeschen nur Leerzeilen, die wirklich leer sind (also keine Zeilen, die nur Spaces oder Tabs enthalten).
Jo, da kommts dann auf die Definition von Leerzeilen an :-)
bankkind
User
Beiträge: 106
Registriert: Freitag 14. September 2007, 23:02
Wohnort: Teltow
Kontaktdaten:

So bei meiner Bereinigungsaktion will ich die ersten 20 Zeichen einer Zeile auf einen bestimmten Wert prüfen. Die Frage ist also wie teile ich den String und schaffe aus den ersten 20 Zeichen einen neuen String?
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

bankkind hat geschrieben:Die Frage ist also wie teile ich den String und schaffe aus den ersten 20 Zeichen einen neuen String?
Das sind jetzt aber die absoluten basics!
Nimm dir irgendeine Doku zu Python und lies den Abschnitt über Zeichenketten.

Wie man den ersten Teil deiner Aufgabenbeschreibung löst, lässt sich erst sagen, wenn du das präzisierst.
bankkind
User
Beiträge: 106
Registriert: Freitag 14. September 2007, 23:02
Wohnort: Teltow
Kontaktdaten:

ohja sorry... war gerad zu faul... ;-) ich habe es mir fix gesucht!
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Dauerbaustelle hat geschrieben:Jo, da kommts dann auf die Definition von Leerzeilen an :-)
Gemäß Deiner Definition wäre dann auch jede zweite Leerzeile mehrerer aufeinanderfolgender Leerzeilen keine Leerzeile, da greift dieses einfache replace nämlich nicht :)
Antworten