En este post sobre programación en Python te mostraré cómo copiar un directorio completo de manera recursiva. Es decir, si hay archivos dentro del directorio también se van a copiar, y lo mismo con otros directorios.
Vamos a usar una función realmente sencilla que ya viene integrada en el lenguaje; la misma se llama copy_tree
y viene dentro de distutils.dir_util
.
Esta solución funciona de maravilla tanto en Windows como en Linux.
La función copy_tree
Este método recibe dos argumentos: la ruta del directorio origen, y la ruta del directorio de destino. Pueden ser rutas absolutas o relativas a la ubicación del script.
Recuerda que ambos directorios deben existir.
Copiar directorio en Python
Así que para copiar toda una carpeta con el contenido hacemos lo siguiente:
# parzibyte.me/blog
from distutils.dir_util import copy_tree
DIRECTORIO_ORIGEN = "origen"
DIRECTORIO_DESTINO = "destino"
print("Copiando...")
copy_tree(DIRECTORIO_ORIGEN, DIRECTORIO_DESTINO)
print("Copiado")
Estoy definiendo unas constantes para los nombres de directorios; que en este caso son carpetas relativas al script.
Ahora se puede comprobar que funciona. Primero comprobamos el contenido de la carpeta origen y ejecutamos el script que copia el contenido:
Después de ejecutar lo volvemos a comprobar y efectivamente el contenido se ha copiado de manera recursiva: