Hvordan udskriver man farvet tekst i terminal i Python?

Hvordan kan jeg sende farvet tekst til terminalen i Python? Hvad er det bedste Unicode-symbol til at repræsentere en solid blok?

Du vil gerne lære om ANSI escape-sekvenser. Her er et kort eksempel:

CSI="\x1B["
print(CSI+"31;40m" + "Colored Text" + CSI + "0m")

For mere information se http://en.wikipedia.org/wiki/ANSI_escape_code

Som bloktegn kan du prøve et unicode-tegn som \u2588:

print(u"\u2588")

Sæt det hele sammen:

print(CSI+"31;40m" + u"\u2588" + CSI + "0m")
Kommentarer (2)

I Windows kan du ikke udskrive til konsollen med farver, medmindre du bruger win32api.

For Linux er det lige så simpelt som at bruge print, med de escape-sekvenser, der er beskrevet her:

Farver

For at tegnet skal udskrives som en boks, afhænger det i virkeligheden af hvilken skrifttype du bruger til konsolvinduet. Pund-symbolet fungerer godt, men det afhænger af skrifttypen:

#
Kommentarer (0)

Du kan bruge Python-implementeringen af curses-biblioteket: http://docs.python.org/library/curses.html

Kør også dette, og du vil finde din boks:

for i in range(255):
    print i, chr(i)
Kommentarer (1)