Textdatei bearbeiten

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
TripleH
User
Beiträge: 29
Registriert: Donnerstag 11. Dezember 2003, 12:58

Montag 29. Dezember 2003, 22:34

Hallo!
Ich hab ein kleines Prob und zwar möchte ich eine text Datei öffnen was ich mit diesem code mache:

Code: Alles auswählen

f =open ("test.txt", 'r')                                 
    zaehler = 0 
    z1 = 0 
    z2 = 0 
   
Abfrage
 for line in f.readlines():
zuerst öffne ich die Datei und später soll Zeile für Zeile etwa gemacht werden. Das Prob ist das es nicht geht wenn die erste Zeile leer ist.Wie kann ich es machen das er die leeren Zeilen überspringt? Oder hat jemand ne andere Idee?

MFG Basti
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Montag 29. Dezember 2003, 23:13

Hallo!
TripleH hat geschrieben:Wie kann ich es machen das er die leeren Zeilen überspringt?
Wenn Du Leerzeilen als Zeilen mit ausschließlich Whitespaces ansiehst (ein \n gibt es ja immer), könntest Du Folgendes machen:

Code: Alles auswählen

for line in f.readlines():
    if not line.strip(): continue
    print line
Jan
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Dienstag 30. Dezember 2003, 00:28

Hi,

Code: Alles auswählen

for line in f.readlines():
    if line.strip():
        print line # oder mach sonstwas
dürfte einfacher zu lesen sein

ab Python2.2 kannst dir auch das readlines sparen

Code: Alles auswählen

zaehler = 0
z1 = 0
z2 = 0
f = open("test.txt", 'r')
for line in f:
    zaehler += 1
    if line.strip():
        z1 += 1
    else:
        z2 += 1
f.close()

print "Die Datei hat %n Zeilen, davon %n leere und %n mit Inhalt" % (zaehler, z2, z1)

Gruß

Dookie
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Dienstag 30. Dezember 2003, 08:38

Morgen!
Dookie hat geschrieben:dürfte einfacher zu lesen sein
Tja, da bin ich immer am Schwanken. Dass eine Leerzeile auftritt, ist die "Ausnahme", und diese will ich im if-Block verarbeiten. Die Nicht-Leerzeilen sind die "Regel" und ich will deswegen deren Verarbeitung nur ungern komplett einrücken müssen, zumal wenn es sich dabei um mehrere Zeilen handelt. Ok, ist wirklich nur eine Stilfrage.
Jan
Volker

Dienstag 30. Dezember 2003, 13:28

Hi,

am besten gewöhnt man sich auch gleich das open(...) ab und nimmt file(...)

Ist Zukunftssicherer!

Volker
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Dienstag 30. Dezember 2003, 22:33

Das File ist etwas, an dass ich mich nicht gewöhnen werde, da ich seit Python 1.4 Hobbymäßig programmiere und es da nur open gab. Solange gibts file noch nicht und auch auf vielen Servern existiert file noch nicht. Am sichersten ist immer noch das hier:

Code: Alles auswählen

try: file
except NameError: file=open
Antworten