Python String auf Inhalt prüfen?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

lenlux 
Beitragsersteller
 29.03.2016, 16:58

str.__contains:: funktioniert. Danke. :D

0
Ezares  29.03.2016, 17:05
@lenlux

Du hast bei python so genannte "Magic methods" z.b. "__add__", "__contains__".

Die helfen dir z.B. wenn du eine eigene Klasse von Objekten baust.

Als Beispiel: Du baust dir Vektoren und willst die addieren, dann könnte man sich eine Funktion addieren(Vektor1, Vektor2) bauen oder "__add__" dann bekommt man das Ergebnis von "__add__" wenn man "Vektor1 + Vektor2" schreibt.

Das gleiche ist hier mit "__contains__" es reicht das Schlüsselwort "in" zu benutzen. Für dein Beispiel also:

input = adminlist.readlines()
if "test" in input:
    print("Klappt")
else:
    print("Klappt nicht")

(sollte hoffentlich klappen)

Kannst z.B. bei http://www.rafekettler.com/magicmethods.html nachlesen

0

Hiho,

Nochmal als anhang :D :

Also eigentlich sollte das so klappen solange bei test Groß- und Klein-schreibung beachtet ist. Das würde so z.B. auch nicht funktionieren wenn der Inhalt den du suchst nur test beinhaltet und nicht nur test ist also z.B steht in readlines() -> ["testuser", "admin",...] anstatt test dann klappt der einfache aufbau mit if "test" in ...readlines() nicht da bräuchtest du eine schleife ODER halt __contains.
Es kann auch sein das der Inhalt deines Files irgendwelche Escape Sequences beinhaltet (also \n \r \t usw. gehe ich jetzt aber mal nicht von aus)

Wenn kannste dir ja die Strings einfach mal mit repr("mystring") ausgeben lassen.

MfG 

Freddy