From n00b to ZeroCool / Origen

Tu primer script: automatiza algo aburrido y siéntete poderoso

Arma tu primer script en Python para renombrar archivos en batch, evitar errores y ahorrar tiempo. Corre en Windows, macOS o Linux sin drama.

Lo que vale la pena leer aquí

Abres el explorador. Copy/paste. En el 14 te equivocas. Te regresas. Te vuelve a escribir tu jefe. Tu laptop ya vieja empieza a sonar como si fuera a despegar.

Intro: cuando te cae el veinte de que tú eres el robot

Son las 11:47 pm. Te cae el mensaje: “¿Me subes evidencias al drive en corto?”. Son 120 screenshots con nombres tipo IMG_3920.png, IMG_3921.png… y el formato de auditoría pide algo como POS-07_turnoB_001.png, ..._002.png.

Abres el explorador. Copy/paste. En el 14 te equivocas. Te regresas. Te vuelve a escribir tu jefe. Tu laptop ya vieja empieza a sonar como si fuera a despegar.

Ese es el momento donde un script te cambia el mood: no es “hacer una app”, no es “aprender a programar” como meta abstracta. Es una cosita chiquita que te quita talacha repetitiva y te deja respirar.

Qué vas a sacar de esto

  • Qué es un script en el mundo real (sin definición de diccionario).
  • Cómo escoger una tarea aburrida que sí valga la pena automatizar.
  • Un workflow para escribir tu primer script en Python sin enredarte.
  • Un ejemplo completo: renombrar archivos en batch con formato consistente.
  • Cómo correrlo en Windows/macOS/Linux sin pelearte con medio planeta.
  • Errores típicos (los que te pegan cuando ya vas contra deadline) y cómo evitarlos.

Contexto práctico: el mejor primer script no es “Hola Mundo”

Hola Mundo sirve para validar el setup. Pero no te ahorra nada.

El primer script que sí se siente como power-up casi siempre cumple esto:

  • Te ahorra tiempo aunque sea poquito, pero seguido.
  • Te baja el riesgo de regarla (renombrar mal, mandar el archivo incorrecto, duplicar evidencia).
  • Vive pegado a tu jale real: soporte, escuela, freelance, sysadmin, contenidos, data.

Escenas que pasan un chorro:

  • Soporte: bajar logs, filtrarlos, zippearlos y ponerles nombre decente para mandarlos por correo (sí, todavía pasa).
  • Freelance mal cotizado: “es rapidito” se convierte en 2 horas ordenando PDFs/facturas/contratos con final_final_ahora_si.pdf.
  • Un negocio que no necesita magia: solo quiere que “eso” funcione antes de hacer deploy.

Decisión que te conviene para empezar: automatiza algo de archivos. Es simple de entender, te da feedback inmediato y puedes hacer rollback fácil si pruebas bien.

Paso a paso: renombrar archivos sin dolor

Vamos a automatizar esto:

  • Tienes una carpeta con imágenes IMG_0001.jpg, IMG_0002.jpg
  • Quieres renombrarlas a POS-07_turnoB_001.jpg, POS-07_turnoB_002.jpg

1) Instala Python (si no lo tienes)

Windows

  • Descarga Python desde python.org.
  • Marca la casilla “Add Python to PATH” (neta, no la brinques).
  • En PowerShell:
python --version

macOS/Linux

  • Muchas veces ya tienes Python, pero puede ser otra versión o estar medio raro.
  • Prueba:
python3 --version

Si no jala, instala con Homebrew (mac) o tu package manager (Linux). Si te atoras aquí, bienvenido: esto también es parte del oficio.

2) Crea una carpeta de prueba (no lo corras en lo real primero)

Arma algo como:

  • C:\Users\tu_usuario\Desktop\renombre_test (Windows)
  • /Users/tu_usuario/Desktop/renombre_test (mac)

Copia 5–10 archivos ahí para jugar.

Regla de oro: prueba en una copia. El tú de mañana te lo va a agradecer cuando alguien pida “un cambio rápido” y ya estés cansado.

3) Escribe el script

Crea un archivo renombra.py dentro de esa carpeta.

Código completo:

from pathlib import Path

# --- Configuración (ajústala a tu caso) ---
CARPETA = Path(".")  # carpeta actual
PREFIJO = "POS-07_turnoB_"  # lo que va antes del número
EXTENSIONES = {".jpg", ".jpeg", ".png"}  # qué archivos tocar
INICIO = 1  # número inicial
RELLENO = 3  # 001, 002...


def main():
    archivos = sorted(
        [p for p in CARPETA.iterdir() if p.is_file() and p.suffix.lower() in EXTENSIONES]
    )

    if not archivos:
        print("No encontré archivos para renombrar. Revisa la carpeta y extensiones.")
        return

    # Preview (antes de ejecutar)
    print("Preview de cambios:\n")
    cambios = []
    n = INICIO
    for p in archivos:
        nuevo_nombre = f"{PREFIJO}{n:0{RELLENO}d}{p.suffix.lower()}"
        destino = p.with_name(nuevo_nombre)
        cambios.append((p, destino))
        print(f"{p.name}  ->  {destino.name}")
        n += 1

    # Confirmación
    resp = input("\n¿Aplicar estos cambios? (s/n): ").strip().lower()
    if resp != "s":
        print("Cancelado. No se modificó nada.")
        return

    # Ejecutar renombre
    for origen, destino in cambios:
        if destino.exists():
            raise FileExistsError(f"Ya existe el archivo: {destino.name}")
        origen.rename(destino)

    print("\nListo. Archivos renombrados.")


if __name__ == "__main__":
    main()

Qué está pasando (sin humo):

  • Path(".") es “la carpeta donde estás parado”.
  • Filtras por extensiones para no tocar un Thumbs.db o un README.txt.
  • Ordenas para que el conteo sea predecible.
  • Haces preview y pides confirmación (esto te salva de renombrar 120 cosas mal).
  • Si ya existe un nombre destino, truena con error para no pisar archivos.

4) Corre el script

En terminal, muévete a la carpeta:

Windows (PowerShell)

cd C:\Users\tu_usuario\Desktop\renombre_test
python .\renombra.py

macOS/Linux

cd ~/Desktop/renombre_test
python3 renombra.py

Cuando te pregunte, contesta s.

Tip de sobrevivencia: si te da cosa, corre una vez y pon n. El preview es parte del workflow.

5) Hazlo tuyo: mini upgrades que sí valen la pena

Ya que lo veas funcionar, súbele un notch:

A) Argumentos para no editar el archivo cada vez
Lo “pro” es argparse, pero para tu primer script editar 3 variables arriba está perfecto. Primero que resuelva el bug de tu vida real.

B) Separar por carpetas
Ej. turnoA y turnoB, o por cliente si andas de freelance.

C) Log de cambios
Guarda un .txt con el mapeo antes -> después. El día que alguien te diga “me cambiaste mis evidencias”, lo vas a agradecer.

Tu primer script: automatiza algo aburrido y siéntete poderoso - visual explicativa 1
Visual de apoyo: Intro: cuando te cae el veinte de que tú eres el robot

Screenshots sugeridos (para que se entienda en WordPress)

  • Terminal mostrando python --version o python3 --version.
  • Carpeta “antes” con IMG_0001.jpg, IMG_0002.jpg.
  • Output del script con el preview.
  • Carpeta “después” con POS-07_turnoB_001.jpg
  • (Opcional) ejemplo de error cuando ya existe el archivo destino.

Errores comunes + solución (los que sí pasan)

1) “python no se reconoce como un comando…” (Windows)

Causa: Python no está en PATH.

Solución rápida:

  • Reinstala Python y marca Add Python to PATH.
  • O usa el Python de la Microsoft Store si urge (no es mi favorito, pero te saca del apuro).

2) “Permission denied” al renombrar

Causa: carpeta protegida (tipo Program Files) o el archivo está abierto en algún lado.

Solución:

  • Mueve la carpeta a Escritorio/Documentos.
  • Cierra apps que estén usando los archivos (visor de fotos, editor, sync raro de Drive/OneDrive).

3) Renombró en orden “raro”

Causa: sorted() ordena alfabéticamente, no por “fecha tomada” o por número humano.

Solución:

  • Si tus nombres son IMG_1, IMG_2, IMG_10, el orden alfabético te hace la broma.
  • Usa relleno (IMG_001) o cambia el sort por fecha:
archivos = sorted(archivos, key=lambda p: p.stat().st_mtime)

4) “Ya existe el archivo destino”

Causa: choque de nombres. Está bien que falle: eso evita que sobrescribas cosas en producción.

Solución:

  • Cambia el PREFIJO.
  • Cambia el INICIO.
  • O limpia la carpeta.

5) Lo corriste en la carpeta equivocada (clásico)

Causa: CARPETA = Path(".") apunta a donde estés parado.

Solución:

  • Antes de correr: pwd (mac/linux) o cd sin argumentos (windows) para ver dónde estás.
  • O usa ruta absoluta:
CARPETA = Path(r"C:\Users\tu_usuario\Desktop\renombre_real")
Tu primer script: automatiza algo aburrido y siéntete poderoso - visual explicativa 2
Visual de apoyo: Qué vas a sacar de esto

Checklist final (para sentirte poderoso sin romper nada)

  • Elegí una tarea aburrida que pasa seguido.
  • Probé el script en una carpeta de prueba (copia).
  • Tiene preview y confirmación.
  • Filtra por extensiones (no renombra basura del sistema).
  • Maneja colisiones de nombres (no pisa archivos).
  • Validé con 5–10 archivos antes de soltarlo en la carpeta real.
  • Guardé el script en un lugar decente (repo, gist, carpeta utils), no perdido en Descargas.

FAQ

1) ¿Por qué Python para mi primer script?

Porque está en todos lados (o se instala fácil), se lee claro y trae baterías incluidas para manejar archivos. Para automatizar talacha, es navaja suiza.

2) ¿Esto cuenta como “saber programar”?

Sí. Programar no es memorizar sintaxis: es agarrar algo repetible y convertirlo en instrucciones que la máquina ejecuta sin que tú estés en modo zombie.

3) ¿Y si uso Windows y me da miedo la terminal?

Normal. Empieza con PowerShell y tres comandos: cd, dir y python. Con eso ya puedes correr scripts y desbloquear un chorro de cosas.

4) ¿Puedo hacer lo mismo con Bash o PowerShell puro?

Totalmente. Para sysadmin, Bash/PowerShell es oro. Pero Python te da portabilidad y un camino suave para luego meter validaciones, inputs y más automatización.

5) ¿Cómo lo hago reutilizable para mi equipo?

Dos cosas que pegan fuerte:

  • Agrega argumentos (--prefijo, --inicio, --ext) para no estar editando código.
  • Súbelo a un repo con un README de 10 líneas y un ejemplo de uso. Eso ya es cultura de equipo, aunque estén hasta el cuello de tickets.

Siguiente episodio

Ya sentiste el golpe de dopamina de automatizar una tarea aburrida.
Lo que sigue es hacerlo más “de vida real”: inputs, validaciones y un script que no se rompe cuando el mundo mete ruido.