2012-09-19 14 views
7

Se corro questo in python sotto Linux funziona: Python: Come posso fare in modo che i codici di escape ANSI funzionino anche in Windows?

start = "\033[1;31m" 
end = "\033[0;0m" 
print "File is: " + start + "<placeholder>" + end 

Ma se l'eseguo in Windows non funziona, come posso fare i codici di escape ANSI funzionano anche su Windows?

+2

vedere http://stackoverflow.com/questions/8358533/python-module-to-enable-ans-for-outd-on-windows se potrebbe essere utile – pr0gg3d

+0

Grazie, fatto :-) – pr0gg3d

risposta

10

Si potrebbe verificare Python module to enable ANSI colors for stdout on Windows? per vedere se è utile.

Il modulo colorama sembra essere multipiattaforma.

Si installa Colorama:

pip install colorama 

Poi:

import colorama 
colorama.init() 
start = "\033[1;31m" 
end = "\033[0;0m" 
print "File is: " + start + "<placeholder>" + end 
+0

Funziona con colorama Ho modificato la risposta per includere il codice completo. –

4

Si potrebbe dare un'occhiata a https://github.com/kennethreitz/clint

Dal readme:

>>> from clint.textui import colored, puts 

>>> puts(colored.red('red text')) 
red text 

# It's red in Windows, OSX, and Linux alike. 
+0

Se vorrei usare qualcosa Mi piacerebbe qualcosa che viene fornito con la libreria standard. –

+2

Si potrebbe ancora dare un'occhiata alla fonte. Dietro le quinte usa colarama, che in pratica avvolge sys.stdout.write per sostituire le sequenze di escape. – mfussenegger

1

ho scritto un semplice modulo, disponibile all'indirizzo: http://pypi.python.org/pypi/colorconsole

Funziona con Windows, Mac OS X e Linux. Utilizza ANSI per Linux e Mac, ma le chiamate native alle funzioni di console su Windows. Hai colori, posizionamento del cursore e input da tastiera. Non è un rimpiazzo per le maledizioni, ma può essere molto utile se devi usarlo in semplici script o giochi ASCII.

La documentazione può essere trovato qui: http://code.google.com/p/colorconsole/wiki/PageName

PS: Questa è la stessa risposta per Print in terminal with colors using Python?, ma non sapevo come collegare ad una risposta.