Seite 1 von 1
Leerzeilen in Textdatei erkennen und entfernen
Verfasst: Mittwoch 22. April 2009, 15:06
von bankkind
Hallo,
ich will eine Textdatei entsprechend bereinigen und dazu möchte ich auch Leerzeilen entfernen. Gibt es hierzu eine gute Möglichkeit?
bankkind
Verfasst: Mittwoch 22. April 2009, 15:12
von Rebecca
Hier die Grundidee:
Code: Alles auswählen
for line in in_file:
if not line.strip(): continue
out_file.write(line)
Verfasst: Mittwoch 22. April 2009, 15:13
von Dauerbaustelle
:-)
Oder so:
Code: Alles auswählen
deininhalt = '\n'.join((line for line in deininhalt.split('\n') if line))
Verfasst: Mittwoch 22. April 2009, 15:16
von EyDu
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
Verfasst: Mittwoch 22. April 2009, 15:24
von Rebecca
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).
Verfasst: Mittwoch 22. April 2009, 17:56
von Dauerbaustelle
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 :-)
Verfasst: Freitag 24. April 2009, 09:40
von bankkind
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?
Verfasst: Freitag 24. April 2009, 09:53
von numerix
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.
Verfasst: Freitag 24. April 2009, 10:06
von bankkind
ohja sorry... war gerad zu faul...

ich habe es mir fix gesucht!
Verfasst: Freitag 24. April 2009, 10:19
von kbr
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
