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.dbo unREADME.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.

Screenshots sugeridos (para que se entienda en WordPress)
- Terminal mostrando
python --versionopython3 --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) ocdsin argumentos (windows) para ver dónde estás. - O usa ruta absoluta:
CARPETA = Path(r"C:\Users\tu_usuario\Desktop\renombre_real")

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
READMEde 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.
Idea para cerrar bien este post: toma una sola práctica de aquí y conviértela en algo que tu equipo pueda aplicar hoy.
Cuando un artículo aterriza en decisiones reales, deja de ser contenido y se vuelve ventaja.


