Wie kann ich in Python farbigen Text auf dem Terminal ausgeben?
Die Angabe der Farbe als Funktionsname und nicht als Parameter ist eine fragwürdige Praxis.
Wie kann ich in Python farbigen Text auf dem Terminal ausgeben?
Am liebsten verwende ich den Segenswünsche Bibliothek (volle Offenlegung: ich habe sie geschrieben). Zum Beispiel:
from blessings import Terminal
t = Terminal()
print t.red('This is red.')
print t.bold_bright_red_on_black('Bright red on black')
Um farbige Ziegel zu drucken, ist es am zuverlässigsten, Räume mit Hintergrundfarben zu drucken. Ich verwende diese Technik zum Zeichnen des Fortschrittsbalkens in nasenprogressiv :
print t.on_green(' ')
Sie können auch an bestimmten Orten drucken:
with t.location(0, 5):
print t.on_yellow(' ')
Wenn Sie im Laufe Ihres Spiels mit anderen Terminalfunktionen arbeiten müssen, können Sie auch das tun. Sie können die Standard-Zeichenfolgenformatierung von Python verwenden, um sie lesbar zu halten:
print '{t.clear_eol}You just cleared a {t.bold}whole{t.normal} line!'.format(t=t)
Das Schöne an Blessings ist, dass es sein Bestes tut, um auf allen Arten von Terminals zu funktionieren, nicht nur auf den (weit verbreiteten) ANSI-farbigen. Außerdem hält es unleserliche Escape-Sequenzen aus Ihrem Code heraus und bleibt dabei übersichtlich in der Anwendung. Viel Spaß damit!
Die Angabe der Farbe als Funktionsname und nicht als Parameter ist eine fragwürdige Praxis.
@LtWorf: Sie könnten ihn leicht zu einem Parameter machen, indem Sie getattr
wenn Sie es brauchen. Oder, was wahrscheinlicher ist, erstellen Sie die Formatzeichenfolge stattdessen einfach dynamisch.
Ich habe eine Klasse mit allen Farben mit Hilfe einer for
Schleife, um jede Farbkombination bis zu 100 zu iterieren, und schrieb dann eine Klasse mit Python-Farben. Kopieren und einfügen, wie Sie wollen, GPLv2 von mir:
class colors:
'''Colors class:
Reset all colors with colors.reset
Two subclasses fg for foreground and bg for background.
Use as colors.subclass.colorname.
i.e. colors.fg.red or colors.bg.green
Also, the generic bold, disable, underline, reverse, strikethrough,
and invisible work with the main class
i.e. colors.bold
'''
reset='\033[0m'
bold='\033[01m'
disable='\033[02m'
underline='\033[04m'
reverse='\033[07m'
strikethrough='\033[09m'
invisible='\033[08m'
class fg:
black='\033[30m'
red='\033[31m'
green='\033[32m'
orange='\033[33m'
blue='\033[34m'
purple='\033[35m'
cyan='\033[36m'
lightgrey='\033[37m'
darkgrey='\033[90m'
lightred='\033[91m'
lightgreen='\033[92m'
yellow='\033[93m'
lightblue='\033[94m'
pink='\033[95m'
lightcyan='\033[96m'
class bg:
black='\033[40m'
red='\033[41m'
green='\033[42m'
orange='\033[43m'
blue='\033[44m'
purple='\033[45m'
cyan='\033[46m'
lightgrey='\033[47m'
Versuchen Sie diesen einfachen Code
def prRed(prt): print("\033[91m {}\033[00m" .format(prt))
def prGreen(prt): print("\033[92m {}\033[00m" .format(prt))
def prYellow(prt): print("\033[93m {}\033[00m" .format(prt))
def prLightPurple(prt): print("\033[94m {}\033[00m" .format(prt))
def prPurple(prt): print("\033[95m {}\033[00m" .format(prt))
def prCyan(prt): print("\033[96m {}\033[00m" .format(prt))
def prLightGray(prt): print("\033[97m {}\033[00m" .format(prt))
def prBlack(prt): print("\033[98m {}\033[00m" .format(prt))
prGreen("Hello, World!")
Vorschlag: Definieren Sie Lambdas, die diese farbige Zeichenkette zurückgeben, anstatt sie direkt zu drucken, so dass sie in Verbindung mit anderen Zeichenketten verwendet werden kann.
# Pure Python 3.x demo, 256 colors
# Works with bash under Linux and MacOS
fg = lambda text, color: "\33[38;5;" + str(color) + "m" + text + "\33[0m"
bg = lambda text, color: "\33[48;5;" + str(color) + "m" + text + "\33[0m"
def print_six(row, format, end="\n"):
for col in range(6):
color = row*6 + col - 2
if color>=0:
text = "{:3d}".format(color)
print (format(text,color), end=" ")
else:
print(end=" ") # four spaces
print(end=end)
for row in range(0, 43):
print_six(row, fg, " ")
print_six(row, bg)
# Simple usage: print(fg("text", 160))
Die Formatierung ist sehr schön, und es gibt eine große Farbpalette. Ich komme immer wieder darauf zurück, danke!
Ich habe eine Bibliothek namens colorit . Es ist super einfach.
Hier sind einige Beispiele:
from colorit import *
# Use this to ensure that ColorIt will be usable by certain command line interfaces
# Note: This clears the terminal
init_colorit()
# Foreground
print(color("This text is red", Colors.red))
print(color("This text is orange", Colors.orange))
print(color("This text is yellow", Colors.yellow))
print(color("This text is green", Colors.green))
print(color("This text is blue", Colors.blue))
print(color("This text is purple", Colors.purple))
print(color("This text is white", Colors.white))
# Background
print(background("This text has a background that is red", Colors.red))
print(background("This text has a background that is orange", Colors.orange))
print(background("This text has a background that is yellow", Colors.yellow))
print(background("This text has a background that is green", Colors.green))
print(background("This text has a background that is blue", Colors.blue))
print(background("This text has a background that is purple", Colors.purple))
print(background("This text has a background that is white", Colors.white))
# Custom
print(color("This color has a custom grey text color", (150, 150, 150)))
print(background("This color has a custom grey background", (150, 150, 150)))
# Combination
print(
background(
color("This text is blue with a white background", Colors.blue), Colors.white
)
)
# If you are using Windows Command Line, this is so that it doesn't close immediately
input()
Das gibt Ihnen:
Es ist auch erwähnenswert, dass dies plattformübergreifend ist und auf Mac, Linux und Windows getestet wurde.
Probieren Sie es doch einfach mal aus: https://github.com/SuperMaZingCoder/colorit
colorit
ist jetzt verfügbar und kann mit PyPi installiert werden! Sie können es installieren mit pip install color-it
unter Windows und pip3 install color-it
auf macOS und Linux.
@ncopiy Hallo! Ich habe tatsächlich vor, das innerhalb der nächsten zwei Tage zu tun! :D Im Moment kannst du es mit der Installationsanleitung auf der Seite installieren.
@ncopiy Es ist jetzt verfügbar für die Installation mit pip3
(oder pip
). Der Befehl lautet pip3 install color-it
o pip install color-it
und kann importiert werden mit import colorit
.
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 .