2010-03-05 7 views

Respuesta

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

También puede ser que desee comprobar la específica "ya existe" error (ya OSError podría significar otras cosas, como ha denegado el permiso ...

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

tenga en cuenta que 'excepto OSError como e' es la sintaxis específica de Python 2.6+ Para Python <2.6 use' excepto OSError, e'. – nosklo

+0

Debería * siempre * verificar el motivo en casos como este. Si el directorio ya existe, probablemente esté bien, pero si hay un problema de permiso o un disco lleno, etc., debe dar al usuario un error –

+0

¿Qué ocurre si hay 'EnvironmentError'? – ghostdog74

-3

se puede tratar/salvo?

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

prueba-excepto (sin especificar la excepción) es una mala práctica y debe evitarse, ya que podría ocultar errores que no desea ocultar, como 'KeyboardInterrupt' o' MemoryError' ... Siempre capta el error exacto que Estoy tratando de manejar. – nosklo

+0

En 2.5 en adelante KeyboadInterrupt etc. todo proviene de BaseException. Además, OP solo quiere ignorar los errores ... – ghostdog74

+1

Eso no importa, una cláusula except exceptúa cualquier excepción. Lo que es importante en la pregunta original es cómo ignorar la excepción correcta, sin ignorar absolutamente todas las excepciones. – u0b34a0f6ae

Cuestiones relacionadas