Herramientas: Python, pathlib, pandas opcional

Script de ejemplo

Codigo base para procesar una carpeta de entrada, validar extensiones, copiar archivos y registrar el resultado.

Descargar .py

Problema

Una carpeta recibe archivos con nombres distintos, fechas mezcladas y estructuras parecidas. Antes de analizar, alguien debe ordenar todo a mano.

Convencion propuesta

ElementoRegla
Carpeta origenentrada/
Carpeta destinoordenados/
Nombre finalfecha + nombre limpio + extension

Codigo base

automatizar_archivos.py
from pathlib import Path
from datetime import datetime
import shutil

ENTRADA = Path("entrada")
SALIDA = Path("ordenados")
LOG = Path("log_archivos.csv")
SALIDA.mkdir(exist_ok=True)

permitidos = {".xlsx", ".csv", ".txt"}
lineas_log = ["archivo_original,estado,archivo_destino,mensaje"]

for archivo in ENTRADA.iterdir():
    if not archivo.is_file():
        continue

    extension = archivo.suffix.lower()
    if extension not in permitidos:
        lineas_log.append(f"{archivo.name},rechazado,,Extension no permitida")
        continue

    fecha = datetime.fromtimestamp(archivo.stat().st_mtime).strftime("%Y%m%d")
    nombre_limpio = archivo.stem.lower().replace(" ", "_")
    destino = SALIDA / f"{fecha}_{nombre_limpio}{extension}"

    shutil.copy2(archivo, destino)
    lineas_log.append(f"{archivo.name},procesado,{destino.name},OK")

LOG.write_text("\n".join(lineas_log), encoding="utf-8")

Enfoque

  1. Definir convencion de nombres y carpetas destino.
  2. Leer metadatos de archivo y validar extensiones.
  3. Renombrar con fecha, fuente y tipo de contenido.
  4. Generar un log con archivos procesados y rechazados.

Validaciones

Todo movimiento debe ser reversible o al menos trazable. El log es tan importante como la automatizacion.