2011-06-30 24 views
22

Poszukuję sposobu zmiany koloru tekstu wynikowego z moich skryptów Pythona w trakcie jego działania. Podstawową ideą jest coś takiego:Zmiana koloru tekstu powłoki (Windows)

if (Data < LowerLimit): 
    print "Failed" # Output Failed as Red Text 
elif (Data > UpperLimit): 
    print "Failed" # Red Color 
else: 
    print "Passed" # Blue Color 

Skrypty są używane na komputerach z systemem Windows do szybkiej analizy danych.

+1

duplikat, chociaż prawie żadne z rozwiązań w połączonym pytaniu nie działa w systemie Windows. –

Odpowiedz

48

Albo o najlepszy modułu znalazłem http://pypi.python.org/pypi/colorama

+1

Pamiętaj, aby oznaczyć jako odpowiedź po zakończeniu –

+3

Dziękuję ... Colorama jest niesamowita! –

+0

Tak - colorama faktycznie działa w wierszu polecenia systemu Windows 7. Przed Windows 10 kody ANSI nie działają (z jakiegoś nieodgadnionego powodu) w wierszu polecenia. Colorama może używać komend Win32 w pełni transparantująco - co sprawia, że ​​działa i sprawia, że ​​jest łatwy w użyciu. Cieszę się, że w końcu znalazłem rozwiązanie tego problemu. –

0

spróbować spojrzeć na poniższy link: Python | change text color in shell

Albo przeczytać tutaj: http://bytes.com/topic/python/answers/21877-coloring-print-lines

W ogólnym rozwiązaniem jest użycie kodów ANSI podczas drukowania swój ciąg.

Istnieje rozwiązanie, które wykonuje dokładnie to, czego potrzebujesz.

+0

Ale dlaczego w dół? Co jest nie tak z moją odpowiedzią ???? –

+1

Próbowałem ich rozwiązań, ale nie wydają się działać z oknami. Górna odpowiedź (funkcja hilite), gdy jest nazywana hilite ("Hello", True, False) powoduje, że '\ x1b [32mhello \ x1b [om', które po wydrukowaniu skutkuje ← [32mhello ← [0m zamiast drukowania w kolorze. Również biblioteka curses nie jest dostępna na platformach Windows. – CyanRook

+0

Przepraszam, jeśli tak, sprawdziłem to w oknach z pycharmem i działa idealnie, jednak nie działa z konsolą Pythona, więc proszę wybaczyć i znieść ze mną –

1

Jest to bardzo proste! Zamiast importować nieparzyste moduły dla Pythona lub wypróbowywać długie polecenia, możesz skorzystać z poleceń systemu operacyjnego Windows.

W oknach istnieją polecenia zmieniające kolor tekstu wiersza polecenia. Możesz użyć tego w pythonie, zaczynając od: importowanie os

Następnie musisz mieć linię zmieniającą kolor tekstu, umieścić go w kodzie. os.system ('color 4')

Możesz odgadnąć inne kolory, uruchamiając program cmd.exe i wpisując kolorową pomoc.

Dobra część? To wszystko, co do nich należy, do prostych linii kodu. -Day

+6

Zmienia kolor całej konsoli, a nie tylko tekst drukowany później. – zvone

+0

Przykro mi z powodu tych gości. Byłem śpiący i zupełnie źle zrozumiałem pytanie. – Daymarquez

+0

Jest to nadal ważna odpowiedź na NIESAMOWITE ZWIĄZANE pytanie PRAWDOPODOBNIE DOSTAWIĆ DUPLIKAT, który jest jak zmienić kolor tekstu powłoki w Pythonie ... – Ian

-3

był patrząc na to przez jakiś czas i nie mam żadnych satysfakcjonujących odpowiedzi jednak ...

1) sekwencje ANSI wykonywać pracę w terminalu na Linux

2) jeśli możesz tolerować ograniczony zestaw colo (u) rs spróbuj tego:

print ("hello", koniec = ''); print ("błąd", koniec = "', file = sys.stderr); print ("widzenia")

W idle "cześć" i "do widzenia" są w kolorze niebieskim i "błąd" jest w kolorze czerwonym.

Nie fantastyczne, ale wystarczająco dobre na teraz i łatwe!

+0

Również po prostu wypróbowany w systemie Windows - działa tak samo tam w jałowym "terminalu" również zapomniałem musisz: 'import sys' – Neil

+3

To tylko IDLE kolorowanie stdout i stderr oddzielnie. To nie spowoduje niczego w normalnej konsoli (gdzie zazwyczaj uruchamiane są skrypty) –

Powiązane problemy