Seite 1 von 1

String enthält...

Verfasst: Samstag 18. September 2010, 09:30
von FloF
Servus zusammen,
ich hab die Forensuche bereits bemüht, habe aber nichts gefunden, ich weiß ehrlich gesagt auch nicht genau nach was ich suchen soll...
Ich bin neu hier im Forum und arbeite grade im Rahmen meiner Bachelorarbeit das erste mal mit Python.

Ich habe folgendes Problem:
Ich lasse mir mit os.listdir() eine Liste aller Dateien ausgeben, die in einem Ordner sind. Anschließend loope ich durch jede Datei und bearbeite sie (User-Subroutine für Marc/mentat).
Jetzt will ich in dieser Schleife nochmal eine if-Abfrage, die fragen soll, ob ein bestimmter Name eine bestimmte Buchstabenfolge enthält.
Der Sinn: Wenn die datei z.B. CU_Koerper.mud heißt, soll er sehen dass der Filename "CU" enthält und diesem die Materialparameter von Kupfer zuweißen.
Wie ich Materialparameter zuweise, das ist alles kein Problem. Das einzige Problem ist der Befehl, wie ich prüfen kann, ob mein String "file" eine gewisse Zeichenfolge enthält.

quasi so:

if file "enthält" CU:
gib ihm diese Materialparameter
elif file "enthält" PTFE:
fib ihm die anderen Parameter

oder gibt es vllt eine andere, elegantere Möglichkeit?

Vielen Dank im Voraus.

Gruß
Flo

Re: String enthält...

Verfasst: Samstag 18. September 2010, 09:34
von BlackJack

Code: Alles auswählen

if 'CU' in filename:

Re: String enthält...

Verfasst: Samstag 18. September 2010, 09:44
von FloF
BlackJack hat geschrieben:

Code: Alles auswählen

if 'CU' in filename:
So einfach kanns sein ;) Tausend Dank!

eine Frage noch: kann ich auch mehrere Begriffe abfragen?

if 'a oder b' in filename:

?

Danke!

Re: String enthält...

Verfasst: Samstag 18. September 2010, 10:00
von EyDu

Code: Alles auswählen

if "spam" in filename or "eggs" in filename:
    ...

Re: String enthält...

Verfasst: Samstag 18. September 2010, 10:04
von BlackJack
Alternativ wenn es mehr Begriffe werden oder die eventuell auch Variabel sind:

Code: Alles auswählen

if any(s in filename for s in ['spam', 'eggs']):
    # ...

Re: String enthält...

Verfasst: Samstag 18. September 2010, 10:13
von DaMutz
wenn die Datei immer mit dem Material startet kannst du auch mit split('_') den Dateiname trennen und dann mit einem dict gerade auf den richtigen Parameter verweisen, damit kannst du dir vielleicht einige if und elifs sparen.