Linux/Unix
Die meisten Terminals verstehen ANSI-Escape-Sequenzen. Das sind spezielle Zeichenfolgen die mit dem Escape-Steuerzeichen beginnen, auf das dann Anweisungen an das Terminal folgen, welche die Darstellung beinflussen können. Zum Beispiel die Cursorposition setzen, oder auch Farben und andere Attribute für die Textdarstellung.
Man benutzt die ANSI-Escape-Sequenz für Zeichenattribute folgendermaßen: "\033[ATTRIBUTm". Mehrere Attribute können mit Semikolons getrennt aneinander gehängt werden. Wenn keine Attribute angegeben werden, dann bedeutet das implizit 0, d.h. wiederherstellen: "\033[m".
Beispiel: "Hallo Welt" in Rot auf Grün
1 print "\033[31;42mHallo Welt" # Hier bleibt die Farbe für spätere Ausgaben an
2 print "\033[31;42mHallo Welt\033[m" # Hier wird auf normale Farben zurückgestellt
Tabellen mit Ansi-Escape-Sequenzen
Vorder- und Hintergrundfarben:
Farbe |
Vordergrund |
Hintergrund |
Schwarz |
30 |
40 |
Rot |
31 |
41 |
Grün |
32 |
42 |
Gelb |
33 |
43 |
Blau |
34 |
44 |
Magenta |
35 |
45 |
Cyan |
36 |
46 |
Weiß |
37 |
47 |
Effekte:
Reset |
0 |
Fett |
1 |
Schwach (*) |
2 |
Kursiv (*) |
3 |
Unterstrichen (*) |
4 |
Blinkend |
5 |
Schnell blinkend (*) |
6 |
Reverse Video |
7 |
Versteckt |
8 |
Tiefgestellt (*) |
48 |
Hochgestellt (*) |
49 |
Die mit (*) gekennzeichneten Effekte sind eher ungewöhnlich und werden von vielen Terminals nicht unterstützt. Auch andere können von manchen Terminals nicht dargestellt werden.
Windows
Für die Windows Eingabeaufforderung kann man diese Module einsetzen:
PyReadline - readline für Windows implementiert
console - A console interface for Windows von effbot.org
WConio - Windows CONsole I/O for Python