Python - Zeilen auf erstes Zeichen überprüfen

Von: , Frage gestellt am Sa, 8. Nov 2008
Hallo!

Ich lese mit Python eine Textdatei ein und gehe diese dann Zeile für Zeile durch.
Alle Zeilen OHNE Ziffer an erster Stelle sollen anschließend mit print wieder ausgegeben werden. Ich schaffe allerdings die Überprüfung auf die Ziffer nicht.
Hier ein Auszug aus dem Python-Skript:

for zeile in textfile.readlines():

    if zeile[0]!="[1-9]"

	print zeile


Schreibe ich allerdings z.B. if zeile[0]!="5" werden alle Zeilen mit voranstehender 5 korrekterweise auch nicht ausgegeben.

Was mache ich da falsch?

Grüße
Daniel

3 Antworten zu dieser Frage

  1. Antwort von nach 58 Minuten 0 hilfreich
    Re: Python - Zeilen auf erstes Zeichen überprüfen
    Hallo Daniel, Schreibe ich allerdings z.B. if zeile[0]!="5" werden alle Zeilen mit voranstehender
    5 korrekterweise auch nicht ausgegeben.
    der Operator != vergleicht die Werte von zwei Objekten, hier von zeile[0] und dem String "5". Wenn also zeile[0] nicht der String "5" ist, ist die Bedingung wahr. if zeile[0]!="[1-9]"
    Das ist das gleiche, nur dass du mit dem String "[1-9]" vergleichst; und das ist tatsächlich nur der String, der aus "[", "1", "-" etc. besteht, und hat nicht die Bedeutung, die du dir gewünscht hast.

    Du könntest z.B. den in-Operator nehmen, der prüft, ob ein Objekt zu einer Collection gehört:

         if zeile[0] not in "123456789"
    


    Viele Grüße,

    Andreas
    • Antwort von nach einer Stunde 0 hilfreich
      Re^2: Python - Zeilen auf erstes Zeichen überprüfe
      Danke für die schnelle Antwort!

      Heißt das dann auch, dass ich bei solchen Vergleichen eigentlich keine Regular Expressions verwenden kann?

      Grüße
      Daniel
      • Antwort von nach 2 Stunden 0 hilfreich
        Re^3: Python - Zeilen auf erstes Zeichen überprüfe
        Hi, Heißt das dann auch, dass ich bei solchen Vergleichen
        eigentlich keine Regular Expressions verwenden kann?
        natürlich geht das auch; dafür musst du dir anschauen, wie man reguläre Ausdrücke benutzt: http://docs.python.org/library/re.html
        In Python ist das über normale Bibliotheksfunktionen gelöst und nicht wie in manchen anderen Sprachen als Operatoren in die Sprache integriert.

        Andreas
Keine passende Antwort gefunden? Jetzt eigene Frage stellen!