Zeilenumbruch löschen

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
madthomas
User
Beiträge: 35
Registriert: Dienstag 7. August 2007, 10:32
Wohnort: WND
Kontaktdaten:

Hallo

Hab folgendes Problem.
Ich öffne eine Datei und lese Zeile für Zeile ein.
Überprüfe dann die Zeile nach inhalt, wenn das was ich suche drin ist soll er überprüfen ob die Zeile mit einem Argument endet, wenn nicht soll er den Zeilenumbruch löschen und die nächste Zeile dran hängen

Öffnen und suchen klappt.

Code: Alles auswählen

pfad = "c:/Dokumente und Einstellungen/xxxx/python/" 
dateiname="xxxx.txt"
datei = pfad+dateiname
in_file = open(datei,"r")

for zeile in in_file.readlines():
    print zeile
    if zeile.find("ABC")!=-1 and zeile.find("ende")!=-1:
       print "HHHHIIIIEEEERRRRR"
   elif zeile.find("ABC")!=-1:
       #nächste Zeilen dran hängen bis "ende"vorhanden
   else
       #mach nichts
in_file.close()
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Ein paar Gedanken:

* Um über die Zeilen einer Datei zu iterieren, reicht

Code: Alles auswählen

for zeile in in_file:
* Ist "ABC" in der Zeile:

Code: Alles auswählen

if "ABC" in zeile
* Endet die Zeile mit "ende":

Code: Alles auswählen

if zeile.endswith("ende")
* Newline löschen:

Code: Alles auswählen

zeile.strip()
madthomas
User
Beiträge: 35
Registriert: Dienstag 7. August 2007, 10:32
Wohnort: WND
Kontaktdaten:

Was mich jetzt noch wundert warum der nach jeder Zeile die er einliest noch ein extra Zeilenumbruch macht.

Die Datei sieht etwa so aus

123123123
132123123
123123123
123123123

und so gibt er sie mir aus

123123123

123123123

123123123

123123123

ohne zeile.strip()
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Ein "\n" steht in der zu printenden Zeile und eins wird von print drangehängt.

Code: Alles auswählen

print "wasauchimmer",
Mit nem Komma wird kein "\n" angehängt.
madthomas
User
Beiträge: 35
Registriert: Dienstag 7. August 2007, 10:32
Wohnort: WND
Kontaktdaten:

DANKE
Miko

hm das mit dem komma ist wirklich praktisch danke!
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

mit kommas konkatenierst du Strings bei der Ausgabe...

also:

Code: Alles auswählen

print "ich lese ein...\t",
(einlesen() and ausgeben("fertig!") or ausgeben("fehlgeschlagen :(")
...ja bloedes beispiel... ich mag dieses and/or-zeugs... dummerweise kann man dann nicht print verwenden, sondern brauch eine funktion, die was zurueckgibt:

Code: Alles auswählen

def ausgeben(s):
    print s
    return True
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Antworten