Hallo,
ich will eine Textdatei entsprechend bereinigen und dazu möchte ich auch Leerzeilen entfernen. Gibt es hierzu eine gute Möglichkeit?
bankkind
Leerzeilen in Textdatei erkennen und entfernen
- 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
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
-
- 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))
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()
Code: Alles auswählen
null
eins
zwei
drei
vier
Das Leben ist wie ein Tennisball.
- 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
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Jo, da kommts dann auf die Definition von Leerzeilen an :-)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).
-
- 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?
Das sind jetzt aber die absoluten basics!bankkind hat geschrieben:Die Frage ist also wie teile ich den String und schaffe aus den ersten 20 Zeichen einen neuen String?
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.
Gemäß Deiner Definition wäre dann auch jede zweite Leerzeile mehrerer aufeinanderfolgender Leerzeilen keine Leerzeile, da greift dieses einfache replace nämlich nichtDauerbaustelle hat geschrieben:Jo, da kommts dann auf die Definition von Leerzeilen an