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:

# https://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:

Copiar contenido de directorio con Python - Mostrar contenido y ejecutar script

Después de ejecutar lo volvemos a comprobar y efectivamente el contenido se ha copiado de manera recursiva:

Carpetas copiadas usando Python
Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto