Wie kann ich in Python farbigen Text auf dem Terminal ausgeben?
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)
Wie kann ich in Python farbigen Text auf dem Terminal ausgeben?
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 ... ")
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:
(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 !!
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)
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)
Ihr Code schlägt unter Windows (x64) mit diesem Fehler fehl: AttributeError: 'module' Objekt hat kein Attribut 'wrapper'
@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.
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 )
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.
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.
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-ascii-codes-with-python
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
0 Stimmen
Wie wäre es mit stackoverflow.com/a/42528796/610569 mit pypi.python.org/pypi/lazyme ? (Haftungsausschluss: schamlose Werbung)
0 Stimmen
Wenn Sie kein zusätzliches Paket installieren möchten, gehen Sie folgendermaßen vor neue Antwort .