list.lower() oder dict.upper() etc.
Verfasst: Samstag 9. Februar 2008, 01:33
Guten Abend!
Ich bin gerade dabei, ein "virtuelles" Hackspiel zu programmieren, das ausschließlich in der Shell abläuft. Nun habe ich mir ein Dictionary angelegt, in dem jeweils der Wert eines Ordners oder einer Datei das Parentverzeichnis ist. Nun soll man über "CD Ordner" in den Ordner gelangen:
ordner ist die Eingabe nach CD, self.comp das Dictionary, in welchem jeweils der Schlüssel ein/e Ordner/Datei und der Wert das Parentverzeichnis ist. self.path ist der Arbeitspfad links des blinkenden Cursors im Cmd.
if ordner in self.comp.keys() and self.comp[ordner]==self.path.split('/')[-2] and ordner.count('.')==0:
self.path+=ordner+'/'
Erst wird geprüft, ob ordner als Unterverzeichnis existiert, danach ob sein Parentverzeichnis dem aktuellen Arbeitsverzeichnis entspricht und dann, ob ordner keine Datei ist.
Das ganze funktioniert ja prima, wenn ich einfach alle Ordner im Dictionary groß bzw. klein schreibe und dann die Eingabe ordner auch per .upper() oder .lower() groß- bzw. klein mache. Doch wie sollte ich am klügsten vorgehen, dass ich die Groß- und Kleinschreibung als "Hacker" ignorieren kann, ohne meine Ordner nur aus Groß- oder Kleinbuchstaben zusammensetzen zu müssen? Natürlich könnte ich immer mit einer for-Schleife self.comp.keys() etc. vorübergehend lowern oder uppern, aber dies würde eine Menge Code produzieren.
Gibt es eine Möglichkeit, eine Liste bzw. ein Dictionary ähnlich .lower() und .upper() von der Schreibweise zu ändern oder ist es möglich, eine Bedingung in folgendem Format aufzustellen:
if re.compile(ordner, re.IGNORECASE) in self.comp.keys()...
Danke für euer Interesse,
Pythonierer!
Ich bin gerade dabei, ein "virtuelles" Hackspiel zu programmieren, das ausschließlich in der Shell abläuft. Nun habe ich mir ein Dictionary angelegt, in dem jeweils der Wert eines Ordners oder einer Datei das Parentverzeichnis ist. Nun soll man über "CD Ordner" in den Ordner gelangen:
ordner ist die Eingabe nach CD, self.comp das Dictionary, in welchem jeweils der Schlüssel ein/e Ordner/Datei und der Wert das Parentverzeichnis ist. self.path ist der Arbeitspfad links des blinkenden Cursors im Cmd.
if ordner in self.comp.keys() and self.comp[ordner]==self.path.split('/')[-2] and ordner.count('.')==0:
self.path+=ordner+'/'
Erst wird geprüft, ob ordner als Unterverzeichnis existiert, danach ob sein Parentverzeichnis dem aktuellen Arbeitsverzeichnis entspricht und dann, ob ordner keine Datei ist.
Das ganze funktioniert ja prima, wenn ich einfach alle Ordner im Dictionary groß bzw. klein schreibe und dann die Eingabe ordner auch per .upper() oder .lower() groß- bzw. klein mache. Doch wie sollte ich am klügsten vorgehen, dass ich die Groß- und Kleinschreibung als "Hacker" ignorieren kann, ohne meine Ordner nur aus Groß- oder Kleinbuchstaben zusammensetzen zu müssen? Natürlich könnte ich immer mit einer for-Schleife self.comp.keys() etc. vorübergehend lowern oder uppern, aber dies würde eine Menge Code produzieren.
Gibt es eine Möglichkeit, eine Liste bzw. ein Dictionary ähnlich .lower() und .upper() von der Schreibweise zu ändern oder ist es möglich, eine Bedingung in folgendem Format aufzustellen:
if re.compile(ordner, re.IGNORECASE) in self.comp.keys()...
Danke für euer Interesse,
Pythonierer!