2010-03-05 4 views

Antwort

19
try: 
    os.makedirs('C:\\test\\') 
except OSError: 
    pass 

Sie auch den spezifischen Fehler „existiert bereits“ überprüfen möchten (da OSError andere Dinge bedeuten könnte, wie Erlaubnis verweigert ...

import errno 
try: 
    os.makedirs('C:\\test\\') 
except OSError as e: 
    if e.errno != errno.EEXIST: 
     raise # raises the error again 
+0

beachten Sie, dass 'außer OSError als e' python ist 2.6+ spezifische Syntax. Für python <2.6 Verwendung' außer OSError, e'. – nosklo

+0

sollten Sie * immer * den Grund prüfen in solchen Fällen. Wenn das Verzeichnis bereits existiert, ist es wahrscheinlich in Ordnung, aber wenn es ein Berechtigungsproblem oder eine Festplatte voll usw. gibt, müssen Sie dem Benutzer einen Fehler geben –

+0

was ist, wenn es "EnvironmentError" gibt? – ghostdog74

-3

können Sie versuchen,/außer?

try: 
    os.makedirs('C:\\test\\') 
except: pass 
+2

bare try-except (ohne Angabe der Ausnahme) ist eine schlechte Übung und sollte vermieden werden, da es Fehler verbergen kann, die Sie nicht verstecken möchten, wie 'KeyboardInterrupt' oder' MemoryError' ... Immer den genauen Fehler, den Sie versuche zu handhaben. – nosklo

+0

In 2.5 ab KeyboadInterrupt usw. kommt alles von BaseException. Außerdem möchte OP nur Fehler ignorieren ... – ghostdog74

+1

Das ist egal, eine nackte Ausnahme-Klausel gibt Ausnahmen. Was in der ursprünglichen Frage wichtig ist, ist, wie man die richtige Ausnahme ignoriert und alle Ausnahmen absolut ignoriert. – u0b34a0f6ae

Verwandte Themen