3256 Stimmen

Wie drucke ich farbigen Text auf dem Terminal in Python?

Wie kann ich in Python farbigen Text auf dem Terminal ausgeben?

1 Stimmen

Dieses Symbol eignet sich hervorragend für einen farbigen Block: Das einzige Problem ist, dass es sich um erweitertes ASCII handelt, vielleicht kann man es mit http://stackoverflow.com/questions/8465226/using-extended-as‌​cii-codes-with-pytho‌​n

1 Stimmen

Einige Terminals können auch Unicode-Zeichen anzeigen. Wenn dies auf Ihr Terminal zutrifft, sind die möglichen Zeichen fast unbegrenzt.

9 Stimmen

Diese Antwort kam ziemlich spät, aber sie scheint mir die beste zu sein... die anderen Antworten erfordern spezielle Hacks für Windows, während diese Antwort einfach funktioniert: stackoverflow.com/a/3332860/901641

4voto

nmenezes Punkte 890

Ich habe ein einfaches Modul geschrieben, verfügbar unter: http://pypi.python.org/pypi/colorconsole

Es funktioniert mit Windows, Mac OS X und Linux. Es verwendet ANSI für Linux und Mac, aber native Aufrufe an Konsolenfunktionen unter Windows. Sie haben Farben, Cursorpositionierung und Tastatureingabe. Es ist kein Ersatz für Curses, kann aber sehr nützlich sein, wenn Sie in einfachen Skripten oder ASCII-Spielen verwenden müssen.

4voto

Gerry P Punkte 6110

Hier ist eine einfache Funktion, mit der ich eine Textnachricht in Farbe drucken kann, ohne mir ANSI-Codes merken zu müssen, sondern indem ich Standard-RGB-Tupel verwende, um die Vorder- und Hintergrundfarben zu definieren.

def print_in_color(txt_msg, fore_tuple, back_tuple, ):
    # Prints the text_msg in the foreground color specified by fore_tuple with the background specified by back_tuple
    # text_msg is the text, fore_tuple is foreground color tuple (r,g,b), back_tuple is background tuple (r,g,b)
    rf,bf,gf = fore_tuple
    rb,gb,bb = back_tuple
    msg = '{0}' + txt_msg
    mat = '\33[38;2;' + str(rf) + ';' + str(gf) + ';' + str(bf) + ';48;2;' + str(rb) + ';' +str(gb) + ';' + str(bb) + 'm'
    print(msg .format(mat))
    print('\33[0m') # Returns default print color to back to black

# Example of use using a message with variables
fore_color = 'cyan'
back_color = 'dark green'
msg = 'foreground color is {0} and the background color is {1}'.format(fore_color, back_color)
print_in_color(msg, (0,255,255), (0,127,127))

4voto

Proud Punkte 76
print("\033[1;32;40m Bright Green  \n")

1

3 Stimmen

Eine Erklärung wäre angebracht.

4voto

hooman Punkte 476

Der einfachste Weg, den ich gefunden habe, ist, keine ANSI-Escape-Codes zu verwenden, sondern die Fore von import module colorama . Werfen Sie einen Blick auf den unten stehenden Code:

from colorama import Fore, Style

print(Fore.MAGENTA + "IZZ MAGENTA BRUH.")

print(Style.RESET_ALL + "IZZ BACK TO NORMALZ.")

im Vergleich zum ANSI-Escape-Code:

print("\u001b[31m IZZ RED (NO MAGENTA ON ANSI CODES).\u001b[0m")

print("BACK TO NORMALZ.")

4voto

Robpol86 Punkte 1525

Ich habe ein Modul geschrieben, das Farben in Linux, OS X und Windows behandelt. Es unterstützt alle 16 Farben auf allen Plattformen, man kann Vorder- und Hintergrundfarben zu unterschiedlichen Zeiten setzen, und die String-Objekte liefern vernünftige Ergebnisse für Dinge wie len() und .capitalize().

https://github.com/Robpol86/colorclass

Example on Windows cmd.exe

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X