Python - Zeilen auf erstes Zeichen überprüfen

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

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

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

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