JavaScript u.a. Script-Sprachen
Von: Daniel, 8.11.2008 09:40 Uhr
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



  1. Antwort von Andreas 0
    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
    2 Kommentare
    • von Daniel 0
      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
    • von Andreas 0
      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