Farben im Terminal für Python mit Colorama
Veröffentlicht: 04.04.2020
Letzte Änderung: 08.04.2020
Netzwerk Offline
Dein Netzwerk ist offline, deshalb laden wir die gesamte Seite aus dem Cache. Beachte: die Inhalte könnten veraltet sein!
Für aktuelle Inhalte aktiviere bitte dein Internet!
Alter Browser
Hallo liebe Nutzer,
da wir als Coding-Plattform und Webentwickler ausschließlich auf aktuelle Technologien setzen, unterstützen wir keine veralteten Internetbrowser. Bitte schau dir doch ein paar der tollen Alternativen an, bestimmt findest du hier einen für dich passenden modernen Browser!

Farbige Textausgabe auf der Konsole in Python

Inhaltsverzeichnis
[[TABLE OF CONTENTS]]
access_timeGeschätzte Lesezeit ca. Minuten

Irgendwann fangen wir in Python an, aufwendigere Anwendungen zu schreiben. Oft bleiben wir in Python dabei im Terminal bzw. in der Konsole. Die Übersicht über die einzelnen Spalten geht einfach verloren. je mehr Prints wir ausführen.

Natürlich fragt man sich, ob man das nicht anders lösen kann. Wie wärs mit farbigen Textausgaben im Terminal? Das habe ich zum Beispiel früher einmal für mein "Google Trends Terminal Checker" genutzt, um die Inhalte zu strukturieren und eine bessere Ausgabe zu erhalten.

Wie kommen Farben im Terminal zustande?

Die Farben kommen über sogenannte ANSI-Codes zustande. Darüber lassen sich nicht nur Texte farbig gestalten, es können auch Texte eine Hintergrundfarbe bekommen oder es kann etwas bold ausgezeichnet werden.

Zu beachten ist, dass unterschiedliche Terminals die Funktionalität der Farben nicht immer gleich interpretieren bzw. manche Typen in einem Terminal funktionieren und in einem anderen wiederum nicht.

Unter Windows, in der CMD, funktioniert diese Variante mit ANSI-Codes nicht. Module wie Colorama, was ich euch noch vorstellen werde, funktionieren aber problemlos unter Windows.

Einfaches Farbsystem

Es gibt ein einfaches Farbsystem. Das ist das folgende:

Thema der Tabelle "ANSI Farbcodes "

Die ANSI Farbcodes sind nützlich um Text in der Konsole Farbig darzustellen. Es gibt auch noch weitere ANSI Codes für weitere Funktionen.

CodeErgebnissAnwendungsbereich
\033[0mResetAlle
\033[1mBoldText
\033[4mUnderlineText
\033[30mSchwarzText
\033[31mRotText
\033[32mGrünText
\033[33mGelbText
\033[34mBlauText
\033[35mPinkText
\033[36mTürkiseText
\033[37mGrauText
\033[40mSchwarzHintergrund
\033[41mRotHintergrund
\033[42mGrünHintergrund
\033[43mGelbHintergrund
\033[44mBlauHintergrund
\033[45mPinkHintergrund
\033[46mTürkiseHintergrund
\033[47mGrauHintergrund

Du kannst mit der folgenden Zeile auch Hintergrund und Textfarbe miteinander kombinieren:

\033[<text>;<hintergrund>m 

Eine Ausgabe eines roten Texts auf Grau könnte in Python zum Beispiel wie folgt aussehen. So können wir nun einen farbigen Print in Python machen.

print("\33[31;47m" + "Dein Text")

Nun wird alles nachfolgende im Terminal in der Farbe Rot auf Grau ausgegeben, zu beachten ist, dass, wenn ihr wieder die Farben zurücksetzen wollt, ihr das dann über den Reset-Code aus der obigen Tabelle tun könnt.

256 Farben - System

Das Farbsystem wird nicht von allen Konsolen und Terminals unterstützt, hat dafür aber einen erweiterten Farbraum von 256 Farben. Im Folgenden einmal der Code. Dort müsst ihr nur für <code> eure gewünschte Zahl einsetzen. Alternativ zu der 38 kann auch die 48 verwendet werden. Dann können auch hier diese 256 Farben als Hintergrund verwendet werden.

"\33[38;5;<code>m" # Text Farbe
"\33[48;5;<code>m" # Hintergrund Farbe

Bei kleinere Anwendungen, wo nicht viele Verschieden Farben und an sich wenige Print Befehle verwendet werden mag es sicher noch Nett sein die Farben selbst zu definieren in Variabel und dann immer entsprechend aufzurufen, oder sich eine Funktion zu schreiben mit dem Code. So muss man nur noch diese einsetzen. Eine Alternative ist es auf ein Fertiges Modul für das Thema Farbige Konsolen Ausgaben zurückzugreifen.

colorama-Modul für farbige Textausgaben in Python

Fangen wir mit dem Projekt an, das die meisten Sterne auf Github hat. Dies ist auch das beste, was den Umfang der unterstützten Plattformen angeht. Es funktioniert unter Linux, Mac und sogar Windows.

Github Repository Colorama

Die Insallation von Colorama ist einfach über den entsprechenden pip-Befehl möglich:

pip install colorama

Der Aufruf sieht wie folgt aus. Wichtig ist die init()-Funktion für Windows-Systeme, damit das ANSI richtig interpretieret werden kann. Eine tolle Option, die bei Colorama möglich ist, ist das "autoreset". So muss nicht nach jedem Print ein Reset gemacht werden, so wie es bei der selbstgeschrieben Variante erstmal notwendig wäre.

from colorama import *
init(autoreset=True)

print(Fore.YELLOW + 'Ein Gelber Text')

print(Fore.YELLOW + Back.RED + 'Ein Gelber Text mit Rotem Hintergrund')

print("Normaler Text")

Die Ausgabe unserer farbigen Konsole würde wie folgt aussehen:

An der Zahl unterstützt Colorama 8 verschiedene Farben für Text und Hintergrund; das sind die folgenden:

  • BLACK
  • RED
  • GREEN
  • YELLOW
  • BLUE
  • MAGENTA
  • CYAN
  • WHITE
  • RESET (für Hintergrund und Text getrennt, falls kein autoreset verwendet wird - alternativ gibt es noch Style.RESET_ALL)

Fazit

Als Fazit zu Colorama lässt sich Folgendes sagen: Es unterstützt nicht viele Farben, aber die Farben, die es unterstützt, unterstützt es am besten, da es kein Zusatzpaket für den Windows Support benötigt.

Colorama ist das Modul mit dem besten Platform Support. Zuerst wollte ich euch noch weitere Alternativen vorstellen, allerdings hab ich mir diese angeschaut und bin von dem Support der Plattformen nicht erfreut; tolle Features, die aber nur in wenigen Terminals laufen.

Colorama hat guten Platform Support und eine ausreichende Farbpallette an Farben.

Hast du noch ein Modul gefunden, um die Farbe des Textes im Terminal anzupassen, was ich mir mal anschauen sollte? Hinterlasse mir gerne einen Kommentar!

keyboard_arrow_up
Home Menü Suche
X