# Python Formatter

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

Python einfügen, Black formatiert mit Ihrer Zeilenlänge und Ihren Optionen. Syntaxfehler mit genauer Zeile. Der Code wird nie ausgeführt oder gespeichert.

Dieses Tool führt Black aus, den Formatierer, auf den sich die meisten Python-Projekte bereits geeinigt haben, über das, was Sie einfügen, mit der Zeilenlänge und der Anführungszeichen-Behandlung, die Sie wählen. Lässt sich die Datei nicht parsen, wird die betroffene Zeile genannt, und ist sie bereits formatiert, wird auch das gesagt, statt vorzugeben, etwas getan zu haben.

## Was es tut

- Black-Formatierung bei 79, 88, 100 oder 120 Spalten.
- "Nur prüfen"-Modus: herausfinden, ob sich eine Datei ändern würde, ohne sie zu ändern.
- Behalten Sie Ihren eigenen Anführungszeichen-Stil, oder lassen Sie Black ihn vereinheitlichen.
- Das magische abschließende Komma, das eine Sammlung aufgeklappt hält, beachten oder ignorieren.
- Eine bestimmte Python-Version ansteuern, wenn die Syntax versionsabhängig ist.
- Syntaxfehler melden die Zeile, die Spalte und den umgebenden Code.
- Meldet, wie viele Zeilen hinzugefügt und entfernt wurden, plus die Form der Datei.

## So funktioniert's

1. Den Code einfügen, oder eine ganze Datei davon.
2. Eine Zeilenlänge und beliebige gewünschte Optionen wählen.
3. Formatieren drücken, dann das Ergebnis kopieren oder herunterladen.

## Ihr Code wird nie ausgeführt

Das Formatieren von Python erfordert nicht, es auszuführen. Der Code wird in einen Syntaxbaum zerlegt und aus diesem Baum neu geschrieben, vollständig im Speicher - er wird nie in eine Datei geschrieben, nie importiert und nie ausgeführt. Ein Formatierer, der ausführen würde, was Sie eingefügt haben, wäre eine Remote-Shell mit einem Textfeld.

## Warum Black, und nicht eine eigene Meinung

Black ist eine AST-erhaltende Transformation: Der Code, der herauskommt, ist dasselbe Programm wie der Code, der hineinkam. Diese Eigenschaft ist der ganze Grund, warum man einem Formatierer vertrauen kann, und sie ist der Grund, warum in diesem Tool nirgendwo ein Sprachmodell beteiligt ist. Ein Modell, das gebeten wird, Code aufzuräumen, wird gelegentlich eine Zeile umschreiben, während es dabei ist, und eine stille Änderung an funktionierendem Code ist der eine Fehler, den sich ein Formatierer nicht leisten kann.

## Nur prüfen

Dieselbe Frage, die CI stellt: Würde sich diese Datei ändern? Der Prüfmodus gibt Ihren Originalcode unverändert zurück und meldet, ob Black ihn reformatiert hätte und um wie viele Zeilen. Es ist der schnelle Weg herauszufinden, warum eine Pipeline bei einer Datei fehlschlägt, die Sie lokal nicht reproduzieren können.

## Magisches nachstehendes Komma und fmt: off, durchgerechnete Beispiele

Ein Komma nach dem letzten Element sagt Black, einen Aufruf oder eine Sammlung mit einem Element pro Zeile zu belassen: result = compute(alpha, beta,) kommt als vier Zeilen zurück, alpha, und beta, jeweils in einer eigenen Zeile. Setzen Sie den Haken bei Magisches nachstehendes Komma ignorieren, wird dieselbe Eingabe zu result = compute(alpha, beta), sobald sie in die Zeilenlänge passt. Um einen von Hand ausgerichteten Block wie eine Matrix zu schützen, setzen Sie # fmt: off in die Zeile darüber und # fmt: on darunter; Black lässt alles dazwischen so, wie Sie es geschrieben haben. # fmt: skip am Zeilenende schützt nur diese eine Zeile. Das sind Blacks eigene Kommentare, sie wirken also auch, wenn die CI Ihres Projekts Black ausführt.

## Fragen

**Wird mein Code hochgeladen oder gespeichert?**

Er wird an den Server gesendet, im Speicher formatiert und in derselben Antwort zurückgegeben. Nichts wird auf die Festplatte geschrieben, zwischengespeichert oder protokolliert, und der Nutzungsdatensatz enthält nur Zahlen - Größe, Optionen, wie viele Zeilen sich geändert haben - niemals den Code.

**Ändert das Formatieren, was mein Code tut?**

Nein. Black ändert das Layout, nicht das Verhalten, tut aber mehr als Leerzeichen zu verschieben. Es entfernt überflüssige Klammern (aus x = (1) wird x = 1), schreibt Zahlenpräfixe und Exponenten klein (aus 0XABCDEF wird 0xABCDEF, aus 1E5 wird 1e5), setzt ein abschließendes Komma, wenn es einen Aufruf auf mehrere Zeilen verteilt, kürzt Folgen von Leerzeilen und entfernt die Leerzeichen innerhalb eines Docstrings (aus """ Doc. """ wird """Doc."""). Letzteres ändert den Text von __doc__, was nur zählt, wenn Ihr Code seine eigenen Docstrings liest.

**Warum wurde meine Datei überhaupt nicht reformatiert?**

Weil sie bei der gewählten Zeilenlänge bereits formatiert war. Das Tool sagt "bereits formatiert", statt stillschweigend eine Kopie zurückzugeben.

**Sortiert es meine Imports?**

Nein. Das Sortieren von Imports ist Aufgabe von isort, nicht von Black, und die beiden sind oft genug unterschiedlicher Meinung, dass es hier Sie überraschen würde.

**Kann es eine Datei mit einem Syntaxfehler formatieren?**

Das kann kein Formatierer - eine nicht parsbare Datei hat keine Struktur, die umgeschrieben werden könnte. Sie erhalten die Zeile, die Spalte und den umgebenden Code, damit Sie es korrigieren und erneut versuchen können.

**Hält es sich an PEP 8?**

Black ist mit PEP 8 kompatibel, mit einer bekannten Abweichung: Die Standardzeilenlänge ist 88 statt 79. Wählen Sie 79 im Zeilenlängen-Auswähler, wenn Sie die strengere Zahl brauchen.

**Wie groß darf eine Datei sein?**

Bis zu 400.000 Zeichen pro Durchlauf. Die Formatierung bricht nach 10 Sekunden ab, was nur sehr große oder stark repetitive Dateien erreichen, und jede IP-Adresse kann 30 Formatierungen pro 10 Minuten ausführen.

**Wie bekomme ich dieselbe Formatierung im Editor, mit pre-commit oder in der CI?**

Diese Seite verwendet Black, die Version steht auf breiten Bildschirmen in der Kopfzeile der Seite. Black liest die Projekteinstellungen aus pyproject.toml im Abschnitt [tool.black], mit den langen Optionsnamen: line-length = 88 für die gewählte Einstellung "Zeilenlänge", skip-string-normalization = true, wenn Sie "Meine Anführungszeichen beibehalten" angehakt haben, skip-magic-trailing-comma = true für "Magisches nachstehendes Komma ignorieren" und target-version = ["py311"] für einen festen Wert bei "Ziel". Editor-Plugins und der pre-commit-Hook lesen dieselbe Datei. Führen Sie black . zum Formatieren und black --check --diff . in der CI aus: Es ändert nichts und endet mit Code 1, wenn eine Datei umformatiert würde. Pinnen Sie dieselbe Black-Version wie diese Seite, denn die erste Version jedes Kalenderjahres darf den stabilen Stil ändern.

**Ist das Ergebnis dasselbe wie beim Ruff-Formatierer (ruff format)?**

Fast immer, aber nicht Byte für Byte. Der Ruff-Formatierer ist als direkter Ersatz für Black gebaut, und laut Ruff-Dokumentation kommen bei großen, bereits mit Black formatierten Projekten wie Django und Zulip über 99,9 % der Zeilen identisch heraus. Stärker weicht er bei Code ab, der nie durch Black lief, vor allem bei Kommentaren am Zeilenende, und seine Dokumentation listet die beabsichtigten Abweichungen auf. Seine Standard-Zeilenlänge ist ebenfalls 88, einstellbar mit line-length unter [tool.ruff]; quote-style = "preserve" unter [tool.ruff.format] entspricht "Meine Anführungszeichen beibehalten" und skip-magic-trailing-comma = true entspricht "Magisches nachstehendes Komma ignorieren". Wenn Ihre CI ruff format --check ausführt, prüfen Sie die Datei mit Ruff, nicht mit dieser Seite.

## Mehr in Entwickler-Tools

- [HTML-Viewer](https://discuvr.org/html-viewer/?hl=de)
- [IP-Subnetz-Rechner](https://discuvr.org/ip-subnet-calculator/?hl=de)
- [Kodieren / Dekodieren](https://discuvr.org/encode-decode/?hl=de)
- [Unix-Zeitstempel-Konverter](https://discuvr.org/timestamp-converter/?hl=de)

## Oft zusammen genutzt mit

- [Textvergleich](https://discuvr.org/text-diff/?hl=de)
- [Groß-/Kleinschreibung umwandeln & Zeilen-Tools](https://discuvr.org/case-converter/?hl=de)
- [Study Buddy](https://discuvr.org/study-buddy/?hl=de)

---

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.
