Trabajar con archivos y directorios en proyectos dentro de Python es la cosa más común del mundo, pero no porque sea la más común, es la más fácil de dilucidar a primera vista. Bueno, no al menos hasta que te encuentras con el módulo shutil y su respectiva importación en Python, el import shutil, que te permite hacer tareas como copiar, mover o eliminar archivos, en fin, toda clase de manipulación que quieras hacer con archivos y directorios puedes hacerla con import shutil en Python.
Hoy quiero enseñarte cómo funciona este módulo y qué nos trae de bueno.

¿Qué es import shutil en Python?
El módulo shutil es una abreviatura de shell utilites (sé que te lo estabas preguntando, porque la verdad es que el nombre suena gracioso) y funciona como una librería estándar de Python que proporciona funciones de alto nivel para operar con archivos y directorios. Puedes hacer muchas cosas con él, desde copiar archivos individuales, hasta crear árboles completos de directorios o comprimir contenido en formatos como ZIP y TAR, shutil es la solución para automatizar todas esas tareas.
Es un módulo que permite realizar muchas operaciones de manera sencilla y esto lo hace útil para scripts de mantenimiento, automatización o gestión de proyectos.
¿Cuáles son las operaciones más comunes con import shutil?
Gracias a shutil puedes realizar varias operaciones, desde las más simples hasta las más avanzadas. Veamos algunas de las funciones má susadas y cóm puedes implementarlas fácilmente:
- Copiar archivos: Para copiar archivos puedes usar las funciones copy y copy2. La diferencia principal es que copy2 también copia los metadatos del archivo, como las marcas de tiempo:
import shutil
# Copia un archivo sin metadatos
shutil.copy('archivo_original.txt', 'archivo_copia.txt')
# Copia un archivo con metadatos
shutil.copy2('archivo_original.txt', 'archivo_copia.txt')
- Mover archivos o directorios: Mover archivos o carpetas es igual de sencillo con la función move, que reorganiza tus archivos en un solo paso:
import shutil
# Mover un archivo a otra carpeta
shutil.move('archivo.txt', 'nueva_carpeta/archivo.txt')
- Eliminar directorios: Si necesitas eliminar un directorio completo junto con su contenido, rmtree es la herramienta adecuada:
import shutil
# Borra un directorio y todo su contenido
shutil.rmtree('directorio_a_borrar')
- Copiar un árbol de directorios: Cuando se trata de copiar estructuras completas de carpetas, copytree es la solución perfecta:
import shutil
# Copia un directorio completo
shutil.copytree('directorio_origen', 'directorio_destino')
Trabajar con archivos comprimidos usando shutil
El módulo shutil también te permite crear archivos comprimidos en formatos como ZIP y TAR. Si alguna vez necesitas realizar copias de seguridad o empaquetar proyectos, este es tu módulo, ya que con él puedes:
- Crear un archivo comprimido:
import shutil
# Crear un archivo ZIP
shutil.make_archive('respaldo', 'zip', 'directorio_a_comprimir')
- Extraer un archivo comprimido: Para desempaquetar un archivo comprimido, utiliza la función unpack_archive.
import shutil
# Extraer el contenido de un archivo comprimido
shutil.unpack_archive('respaldo.zip', 'directorio_destino')
Si bien import shutil es buena opción, no siempre lo es. Ya que por ejemplo no puede manejar metadatos avanzados en algunos sistemas de archivos y su funcionalidad de compresión es básica en comparación con otros módulos como zipfile o tarfile. Además siempre es bueno tener cuidado con funciones destructivas como rmtree, si quieres evitar eliminar archivos accidentalmente.
Import shutil con otros módulos: ¿cuál es mejor y para qué?
🔴 ¿Quieres Aprender a Programar con Python? 🔴
Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semanaShutil es una excelente opción para operaciones generales, pero hay otros módulos pueden ser más adecuados para tareas específicas. Veamos una comparativa
Módulo | Uso | Ventaja | Ejemplo de uso |
---|---|---|---|
shutil | Gestión de archivos y directorios | Operaciones de alto nivel | Copiar directorios completos |
os | Operaciones del sistema operativo | Control granular | Cambiar permisos de archivos |
zipfile | Archivos ZIP | Compresión detallada | Crear y leer archivos ZIP |
tarfile | Archivos TAR | Soporte avanzado de archivos | Archivar y comprimir en formato TAR |
Si estás interesado en aprender sobre herramientas como esta y explorar el mundo de Python y otras tecnologías, en KeepCoding te ayudamos a dar el siguiente paso. Nuestro Bootcamp Programación está diseñado para transformar tu carrera y abrirte las puertas a un sector tecnológico lleno de oportunidades, con alta demanda laboral y salarios competitivos. ¡Inscríbete ahora y da el salto hacia un futuro brillante! ¡Sigue Evolucionando, Sigue Codificando!