CodeForge

Python de Cero a Experto / Ruta scripting

Automatizar archivos y carpetas

Teoría22 min20 XP

Empiezas la primera RUTA especializada: scripting y automatización, donde Python brilla como la navaja suiza del programador. La tarea estrella: automatizar el manejo de ARCHIVOS y CARPETAS —listar, buscar, copiar, mover, renombrar cientos de archivos en segundos, sin hacerlo a mano—. Con os, pathlib y shutil conviertes tareas tediosas en scripts de unas líneas. Hoy aprendes a manipular el sistema de archivos programáticamente.

El asistente incansable

Listar y buscar archivos

Aquí creamos unos archivos de ejemplo y los exploramos (todo corre en el sistema de archivos en memoria de este entorno):

os.listdir(".") lista todo el contenido de una carpeta. Path(".").glob("*.txt") busca por PATRÓN —el * es un comodín, así que *.txt encuentra todos los archivos de texto—. Sobre cada Path tienes información útil: .stat().st_size (tamaño), .name, .suffix (extensión), .stem (nombre sin extensión), .exists(). Con glob y estas propiedades ya puedes filtrar archivos por tipo, tamaño o nombre —el primer paso de casi toda automatización—. Para buscar en subcarpetas también, usa rglob (glob recursivo).

Copiar, mover y renombrar

¿Qué hace Path('.').glob('*.txt') y cuál es la diferencia entre copiar y renombrar/mover un archivo?

Mini-reto

Automatiza sobre archivos de Mi Bolsillo: 1) crea tres archivos de ejemplo con distintas extensiones (.txt, .csv, .json) usando write_text; 2) lista solo los .csv con glob y muestra su tamaño; 3) crea una carpeta procesados y mueve el .json dentro con rename; 4) haz una copia de respaldo del .csv con shutil.copy. Verifica el resultado listando cada carpeta. Piensa: ¿qué tarea manual tediosa automatizarías así en tu vida real?

Qué sigue

Ya manipulas archivos sueltos. La próxima lección junta todo en un script de automatización COMPLETO: un organizador que clasifica un montón de archivos desordenados en carpetas según su tipo, en una pasada —el clásico "ordena mi carpeta de descargas" que todos necesitan—.