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

Zeilenumbruch löschen

Beitragvon madthomas » Dienstag 7. August 2007, 11:10

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

Beitragvon mawe » Dienstag 7. August 2007, 12:54

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:

Beitragvon madthomas » Dienstag 7. August 2007, 13:34

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:

Beitragvon schlangenbeschwörer » Dienstag 7. August 2007, 13:45

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:

Beitragvon madthomas » Dienstag 7. August 2007, 13:51

DANKE
Miko

Beitragvon Miko » Dienstag 7. August 2007, 13:59

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:

Beitragvon nkoehring » Dienstag 7. August 2007, 14:33

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

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]