# Formateador de Python

URL: https://discuvr.org/python-formatter/?hl=es
Last updated: 2026-11-07
MCP tool: `format_python`

Pega Python y Black lo formatea con tu longitud de línea y opciones. Los errores de sintaxis indican la línea exacta. Tu código nunca se ejecuta ni se guarda.

Esto ejecuta Black, el formateador en el que ya coinciden la mayoría de los proyectos Python, sobre lo que pegues, con la longitud de línea y el manejo de comillas que elijas. Si el archivo no se puede analizar, dice en qué línea, y si ya está formateado también lo dice, en lugar de simular que hizo algo.

## Qué hace

- Formateo con Black a 79, 88, 100 o 120 columnas.
- Modo "solo verificar": averigua si un archivo cambiaría sin cambiarlo.
- Conserva tu propio estilo de comillas, o deja que Black lo normalice.
- Respeta o ignora la coma final mágica que mantiene una colección expandida.
- Apunta a una versión específica de Python cuando la sintaxis depende de la versión.
- Los errores de sintaxis indican la línea, la columna y el código alrededor.
- Informa cuántas líneas se añadieron y eliminaron, además de la forma del archivo.

## Cómo funciona

1. Pega el código, o todo un archivo.
2. Elige una longitud de línea y las opciones que te interesen.
3. Pulsa Formatear, luego copia o descarga el resultado.

## Tu código nunca se ejecuta

Formatear Python no requiere ejecutarlo. El código se analiza en un árbol de sintaxis y se reescribe a partir de ese árbol, enteramente en memoria - nunca se escribe en un archivo, nunca se importa y nunca se ejecuta. Un formateador que ejecutara lo que pegaste sería una shell remota con un cuadro de texto.

## Por qué Black, y no una opinión propia

Black es una transformación que preserva el AST: el código que sale es el mismo programa que el que entró. Esa propiedad es la razón por la que se puede confiar en un formateador, y por eso ningún modelo de lenguaje interviene en ninguna parte de esta herramienta. Un modelo al que se le pida ordenar código ocasionalmente reescribirá una línea mientras está en ello, y un cambio silencioso a un código que funciona es el único fallo que un formateador no puede permitirse.

## Solo verificar

La misma pregunta que hace el CI: ¿cambiaría este archivo? El modo de verificación devuelve tu código original intacto e informa si Black lo habría reformateado, y en cuántas líneas. Es la forma rápida de averiguar por qué falla un pipeline en un archivo que no puedes reproducir localmente.

## Coma final mágica y fmt: off, ejemplos resueltos

Una coma tras el último elemento indica a Black que mantenga una llamada o colección con un elemento por línea: result = compute(alpha, beta,) vuelve como cuatro líneas, con alpha, y beta, cada uno en su propia línea. Marca Ignorar coma final mágica y la misma entrada queda como result = compute(alpha, beta) siempre que quepa en la longitud de línea. Para proteger un bloque alineado a mano, como una matriz, pon # fmt: off en la línea anterior y # fmt: on debajo, y Black deja todo lo de en medio tal como lo escribiste; # fmt: skip al final de una línea protege solo esa línea. Son comentarios propios de Black, así que siguen funcionando cuando el CI de tu proyecto ejecuta Black.

## Preguntas

**¿Se sube o se guarda mi código?**

Se envía al servidor, se formatea en memoria y se devuelve en la misma respuesta. Nada se escribe en disco, se cachea ni se registra, y el registro de uso solo guarda recuentos - tamaño, opciones, cuántas líneas cambiaron - nunca el código.

**¿Formatear cambia lo que hace mi código?**

No. Black cambia la presentación, no el comportamiento, pero hace algo más que mover espacios. Quita paréntesis redundantes (x = (1) pasa a x = 1), pone en minúscula los prefijos y exponentes de los números (0XABCDEF pasa a 0xABCDEF, 1E5 a 1e5), añade una coma final cuando reparte una llamada en varias líneas, reduce las series de líneas en blanco y recorta los espacios dentro de un docstring (""" Doc. """ pasa a """Doc."""). Este último cambio altera el texto de __doc__, lo que solo importa si tu código lee sus propios docstrings.

**¿Por qué no reformateó mi archivo en absoluto?**

Porque ya estaba formateado con la longitud de línea que elegiste. La herramienta dice "ya formateado" en lugar de devolver silenciosamente una copia.

**¿Ordena mis imports?**

No. Ordenar imports es tarea de isort, no de Black, y ambos discrepan con suficiente frecuencia como para que hacerlo aquí te sorprendiera.

**¿Puede formatear un archivo con un error de sintaxis?**

Ningún formateador puede - un archivo que no se puede analizar no tiene estructura que reescribir. Obtienes la línea, la columna y el código alrededor para que puedas corregirlo e intentarlo de nuevo.

**¿Sigue PEP 8?**

Black es compatible con PEP 8 con una desviación conocida: su longitud de línea predeterminada es 88 en lugar de 79. Elige 79 en el selector de longitud de línea si necesitas la cifra más estricta.

**¿Qué tamaño de archivo puedo formatear?**

Hasta 400.000 caracteres por ejecución. El formateo se detiene a los 10 segundos, algo que solo alcanzan archivos muy grandes o muy repetitivos, y cada dirección IP puede hacer 30 formateos cada 10 minutos.

**¿Cómo obtengo el mismo formato en mi editor, en pre-commit o en CI?**

Esta página usa Black, y su versión aparece en la cabecera de la página en pantallas anchas. Black lee la configuración del proyecto de pyproject.toml, en la sección [tool.black], con los nombres largos de las opciones: line-length = 88 para la opción "Longitud de línea" que elegiste, skip-string-normalization = true si marcaste "Mantener mis comillas", skip-magic-trailing-comma = true para "Ignorar coma final mágica" y target-version = ["py311"] para un valor fijo en "Objetivo". Los plugins del editor y el hook de pre-commit leen el mismo archivo. Ejecuta black . para formatear y black --check --diff . en CI: no cambia nada y sale con código 1 cuando un archivo se reformatearía. Fija la misma versión de Black que esta página, porque la primera versión de cada año natural puede cambiar el estilo estable.

**¿El resultado es el mismo que el del formateador de Ruff (ruff format)?**

Casi siempre, pero no byte a byte. El formateador de Ruff está diseñado como sustituto directo de Black, y su documentación indica que en grandes proyectos ya formateados con Black, como Django y Zulip, más del 99,9 % de las líneas salen idénticas. Difiere más en código que nunca pasó por Black, sobre todo en los comentarios al final de línea, y su documentación enumera sus desviaciones intencionadas. Su longitud de línea por defecto también es 88, configurable con line-length en [tool.ruff]; quote-style = "preserve" en [tool.ruff.format] equivale a "Mantener mis comillas" y skip-magic-trailing-comma = true equivale a "Ignorar coma final mágica". Si tu CI ejecuta ruff format --check, prueba el archivo con Ruff, no con esta página.

## Más en Herramientas para desarrolladores

- [Visor HTML](https://discuvr.org/html-viewer/?hl=es)
- [Calculadora de subredes IP](https://discuvr.org/ip-subnet-calculator/?hl=es)
- [Codificar / Decodificar](https://discuvr.org/encode-decode/?hl=es)
- [Conversor de marcas de tiempo Unix](https://discuvr.org/timestamp-converter/?hl=es)

## Se usa a menudo con

- [Comparar textos](https://discuvr.org/text-diff/?hl=es)
- [Conversor de mayúsculas y herramientas de líneas](https://discuvr.org/case-converter/?hl=es)
- [Study Buddy](https://discuvr.org/study-buddy/?hl=es)

---

Part of Discuvr (https://discuvr.org/): Discuvr is a collection of free, focused tools for day-to-day professional work - office and data utilities, legal and compliance helpers, privacy and security checks, and developer formatters. Every tool has its own page, and most can also be called from ChatGPT or Claude over MCP.
