Kann ich mit Python den print("DenTextHier") Farbig ausgeben?
Hey. Zuzeit Arbeite ich mit Python 3.6 IDLE (also die Shell) und würde einzelne print() also Texte gerne Farbig ausgeben.
Gibt es dafür einen Befehl oder eine Bibliothek die ich importieren oder hinzufügen kann?
Sidenote: Python installiert unter Windows 7
Liebe Grüße, Wannabree :)
1 Antwort
Das Zauberwort heißt Escape-Sequenz. Escapesequenzen kommen aus einer Zeit, in der Terminals und Consolen noch echte Hardware waren. Die meisten der heutigen Konsolen- oder Terminalprogramme unterstützen diese Escapesequenzen immer noch. Eine gute Beschreibung findest Du hier (http://academic.evergreen.edu/projects/biophysics/technotes/program/ansi_esc.htm). Die Startsequenze ist immer "\x1B[".
Die Zeile print("\x1B[31mText\x1B[0m") gibt 'Text' in roter Farbe aus. Bitte nie vergessen, nach dem Text, die Terminal-Attribute mit "\x1B[0m" wieder abzuschalten, sonst kommen ab da an alle Texte in dieser Farbe.
Mit Escape-Sequenzen kann man weit mehr machen, als nur farbige Texte ausgeben. Man kann z.B. auch den Cursor lenken, um ihn z.B. für eine auf der Zeile bleibenden Progressanzeige auf der Zeile zu halten.
Sollte Dein Terminalprogramm das nicht sofort richtig anzeigen, kannst Du das in Deinem Terminalprogramm unter Optionen und Terminal Type einstellen.
Moin Moin,
bei mir muss ich print und den kram danach immer mit abstand schreiben. Also im deinem Falle "print ("\x1B[31mText\x1B[0m")" somit hast du dort ein Leerzeichen dazwischen, dann dürfte es funktionieren.
Grüße, Nioy
Hast du das Problem gelöst?
Ich weiß nur, dass ich es auch mal getestet habe, und es nur in Pycharm ging.
Ich sitze momentan auch dran, und bei mir zeigt er auch nur so ein quatsch an
LG
Vielen Dank für diese Hilfe,
wenn ich jedoch das von dir, oben vorgeschlagene Beispiel per Copy-Paste einfüge funktioniert es nicht.
Als Ergebnis kommt [31mText[0m in der Konsole.
Hab Windows 10 und Python 3.7.2.
Hast du eine Idee, was ich falsch mach.
Vielen Dank im Vorhinaus (c;