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

12voto

Navweb Punkte 645

Wenn Sie Windows verwenden, dann hier!

# Display text on a Windows console
# Windows XP with Python 2.7 or Python 3.2
from ctypes import windll

# Needed for Python2/Python3 diff
try:
    input = raw_input
except:
    pass
STD_OUTPUT_HANDLE = -11
stdout_handle = windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
# Look at the output and select the color you want.
# For instance, hex E is yellow on black.
# Hex 1E is yellow on blue.
# Hex 2E is yellow on green and so on.
for color in range(0, 75):
     windll.kernel32.SetConsoleTextAttribute(stdout_handle, color)
     print("%X --> %s" % (color, "Have a fine day!"))
     input("Press Enter to go on ... ")

0 Stimmen

Wenn Sie verschiedene Farben in derselben Zeile haben wollen, spülen Sie den stdout-Stream zwischen den Aufrufen: print("%X --> %s" % (color, "Have a fine day!"), end='', flush=True)

11voto

Grijesh Chauhan Punkte 54909

Wenn Sie Folgendes verwenden Django :

>>> from django.utils.termcolors import colorize
>>> print colorize("Hello, World!", fg="blue", bg='red',
...                 opts=('bold', 'blink', 'underscore',))
Hello World!
>>> help(colorize)

Schnappschuss:

Image

(Ich verwende in der Regel farbige Ausgaben zum Debuggen auf dem Runserver-Terminal, deshalb habe ich sie hinzugefügt).

Sie können testen, ob es auf Ihrem Rechner installiert ist: <code>$ python -c "import django; print django.VERSION"</code> . Um es zu installieren, prüfen Sie: <a href="https://docs.djangoproject.com/en/1.8/topics/install/" rel="nofollow noreferrer">Wie man Django installiert</a>

Gib ihm eine Versuchen Sie !!

0 Stimmen

Beachten Sie, dass Sie in python3.x eine zusätzliche Klammer nach print hinzufügen sollten: print(colorize(...))

11voto

Vinod Srivastav Punkte 3046

Unter Windows 10 können Sie dieses kleine Skript ausprobieren, das als Farbmischer mit Werten von 0-255 für Rot, Grün und Blau funktioniert:

import os

os.system('')

def RGB(red=None, green=None, blue=None,bg=False):
    if(bg==False and red!=None and green!=None and blue!=None):
        return f'\u001b[38;2;{red};{green};{blue}m'
    elif(bg==True and red!=None and green!=None and blue!=None):
        return f'\u001b[48;2;{red};{green};{blue}m'
    elif(red==None and green==None and blue==None):
        return '\u001b[0m'

und rufen Sie die RGB-Funktion auf, um eine beliebige Kombination von Farben zu erzeugen:

g0 = RGB()
g1 = RGB(0,255,0)
g2 = RGB(0,100,0,True)+""+RGB(100,255,100)
g3 = RGB(0,255,0,True)+""+RGB(0,50,0)

print(f"{g1}green1{g0}")
print(f"{g2}green2{g0}")
print(f"{g3}green3{g0}")

RGB() ohne Parameter bereinigt und setzt die Vordergrund/Hintergrund Farbe zu Standard . Falls Sie möchten schwarz sollten Sie es aufrufen als RGB(0,0,0) und für weiß RGB(255,255,255) . Während RGB(0,255,0) erstellt absolutes Grün RGB(150,255,150) wird produzieren hellgrün .

Dies unterstützt Hintergrund & im Vordergrund Farbe, um die Farbe als Hintergrundfarbe müssen Sie es mit bg=True das ist False standardmäßig.

Zum Beispiel: Zum Einstellen rot als die Hintergrundfarbe sollte sie aufgerufen werden als RGB(255,0,0,True) sondern zu wählen rot als Schriftfarbe nennen Sie es einfach als RGB(255,0,0,False) seit bg ist standardmäßig False vereinfacht dies, indem man es einfach als RGB(255,0,0)

1 Stimmen

Jeder sollte bedenken, dass diese Farben terminal independent Das bedeutet, dass Sie, wenn Sie eine Art von Grün wünschen, das nicht von Ihrem Terminal stammt TERM 256 colors seine going to work

11voto

nosklo Punkte 204121

Hier ist ein verflucht Beispiel:

import curses

def main(stdscr):
    stdscr.clear()
    if curses.has_colors():
        for i in xrange(1, curses.COLORS):
            curses.init_pair(i, i, curses.COLOR_BLACK)
            stdscr.addstr("COLOR %d! " % i, curses.color_pair(i))
            stdscr.addstr("BOLD! ", curses.color_pair(i) | curses.A_BOLD)
            stdscr.addstr("STANDOUT! ", curses.color_pair(i) | curses.A_STANDOUT)
            stdscr.addstr("UNDERLINE! ", curses.color_pair(i) | curses.A_UNDERLINE)
            stdscr.addstr("BLINK! ", curses.color_pair(i) | curses.A_BLINK)
            stdscr.addstr("DIM! ", curses.color_pair(i) | curses.A_DIM)
            stdscr.addstr("REVERSE! ", curses.color_pair(i) | curses.A_REVERSE)
    stdscr.refresh()
    stdscr.getch()

if __name__ == '__main__':
    print "init..."
    curses.wrapper(main)

1 Stimmen

Ihr Code schlägt unter Windows (x64) mit diesem Fehler fehl: AttributeError: 'module' Objekt hat kein Attribut 'wrapper'

3 Stimmen

@Sorin Sbarnea: Entsprechend der python curses offiziellen Dokumentation in docs.python.org/bibliothek/curses.html wird das Curses-Modul unter Windows nicht unterstützt. Vielleicht haben Sie diese Fehlermeldung anstelle von "No Such Module" oder etwas Ähnlichem erhalten, weil Sie Ihre Testdatei wahrscheinlich "curses.py" genannt haben, damit sie sich selbst importiert.

0 Stimmen

Dies wird immer fehlschlagen, wenn der Bildschirm nicht groß genug ist ( _curses.error: addwstr() returned ERR ), da es versuchen wird, außerhalb des Bildschirms zu schreiben... ( siehe hier )

11voto

ijoseph Punkte 4950
import click

click.secho('Hello, World!', fg='green')
click.secho('Some more text', bg='blue', fg='white')
click.secho('ATTENTION', blink=True, bold=True)

click (CLI-Bibliothek) bietet eine sehr bequeme Möglichkeit, dies zu tun, und ist auf jeden Fall eine Überlegung wert, wenn Sie ein Kommandozeilenwerkzeug schreiben.

1 Stimmen

Perfekt, das hat bei mir funktioniert! Die color-it Lösung hat bei mir nicht funktioniert, weil meine Texte nicht mit der in Colors.etc. angegebenen Farbe eingefärbt wurden. Alle meine Texte wurden in graue Texte, aber mit unterschiedlichen Ton (heller / dunkler) drehen

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