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

Leerzeilen in Textdatei erkennen und entfernen

Beitragvon bankkind » Mittwoch 22. April 2009, 15:06

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:

Beitragvon Rebecca » Mittwoch 22. April 2009, 15:12

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

Beitragvon Dauerbaustelle » Mittwoch 22. April 2009, 15:13

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: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Mittwoch 22. April 2009, 15:16

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:

Beitragvon Rebecca » Mittwoch 22. April 2009, 15:24

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

Beitragvon Dauerbaustelle » Mittwoch 22. April 2009, 17:56

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:

Beitragvon bankkind » Freitag 24. April 2009, 09:40

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

Beitragvon numerix » Freitag 24. April 2009, 09:53

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:

Beitragvon bankkind » Freitag 24. April 2009, 10:06

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

Beitragvon kbr » Freitag 24. April 2009, 10:19

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 :)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder