Pregunta

Si echamos un vistazo a una función de copia de archivos, podemos ver que hay varias excepciones a manejar. Un ejemplo es buena aquí: http://msdn.microsoft.com/en-us /library/9706cfs5.aspx

mi pregunta es si yo uso pitón shutil copy2, lo que debería prestar atención a hacer frente a diversas excepciones (archivo de origen no encontrado, el acceso no autorizado, etc.)?

por ejemplo.

def copy_file (self):   
    if not os.path.isdir(dest_path):
        os.makedirs(dest_path)
    shutil.copy2(src_path, dest_path)

¿Qué debo hacer para la función anterior?

¿Fue útil?

Solución

Es posible que sólo necesitan manejar la excepción IOError que puede ser causado debido a los permisos o cuestión del nombre de destino no es válido.

try:
    shutil.copy(src,dst)
except IOError as e:
    print e

Las otras excepciones mencionadas en el artículo de MSDN parece caer bajo el mismo IOError en Python. El FileNotFound y DirectoryNotFound no son realmente aplicables como shutil.copy va a crear el destino si no existe ya. Además, me parece que el devenir de OSError también están a distancia en este caso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top