2016-05-22 3 views
1

Ich versuche, dieses Schnipsel zu arbeiten, aber es scheint, dass es nicht in Windows funktioniert.
unter linux funktioniert es gut!
hier ist das Beispiel Code-Snippet die Verwendung demonstriert:Python Textfarbe funktioniert nicht auf Windows

 tops = [] 
     for ind, top in enumerate(lr.top): 
      color = colors.setdefault(top, COLORS[len(colors) % len(COLORS)]) 
      if top in disconnected_tops: 
       top = '\033[1;4m' + top 
      if len(lr.loss_weight) > 0: 
       top = '{} * {}'.format(lr.loss_weight[ind], top) 
      tops.append('\033[{}m{}\033[0m'.format(color, top)) 
     top_str = ', '.join(tops) 

, wenn das gesamte Skript ausgeführt wird, scheint das Escape-Zeichen zeigen, nicht zu arbeiten und seltsame Zeichen auf t er Bildschirm. Wie bekomme ich das auf Windows zu arbeiten?

+0

Haben Sie versucht, [colorama] (https://pypi.python.org/pypi/colorama) zu installieren? –

+0

Ich benutze Anaconda, und ich habe es installiert – Breeze

Antwort

1

Ich habe das Problem gefunden!
Ich musste init() in dem Skript verwenden, das ursprünglich fehlte !.
Scheint, dass init() in Linux-basierten Betriebssystemen nicht benötigt wird, denn wenn es so wäre, hätte es dort nicht funktionieren sollen!
Ok.Here ist die Dokumentation itself:

Unter Windows init() aufgerufen wird filtern Flucht ANSI-Sequenzen aus einen beliebigen Text in stdout oder stderr gesendet, und ersetzen sie durch gleichwertige Win32-Aufrufe.

Auf anderen Plattformen hat der Aufruf von init() keine Auswirkungen (außer Sie fordern andere optionale Funktionen an, siehe "Init Keyword Args", unten). Durch Design ermöglicht dies Anwendungen, init() unbedingt auf alle Plattformen aufzurufen, nach denen ANSI-Ausgabe sollte nur funktionieren.

+0

Froh, dass Ihr Problem gelöst ist. Sie können diese Frage schließen, indem Sie Ihre eigene Antwort akzeptieren! –

+2

Es dauert 2 Tage, bis jemand seine eigene Antwort akzeptiert, lange vorbei sind die Tage, an denen Sie sofort Antworten annehmen konnten ;-) – Breeze

+0

Antwort kann jetzt akzeptiert werden, um zu verhindern, dass dies als unbeantwortet erscheint – WhatsThePoint

Verwandte Themen