Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
ich möchte meinen konsolen anwendungen (mit py2exe erstellt) farbe verpassen wie etwa hier zu begutachten:
im forum gibts dazu schon einen thread (http://www.python-forum.de/viewtopic.ph ... in+console) der sehr hilfreich ist, allerdings nicht ganz. habe die verschiedenen möglichkeiten angeschaut und ein problem fiel mir spontan, wenn ich meinen output so stylen möchte wie oben auf dem screenshot: diese python module ändern die gesamte output farbe bis man sie wieder änder. das wäre nach paar texten schon langer code leider.
gibt es den ne möglichkeit das ganze elganter zu gestallten, damit der output allein nicht schon so ne "rechenarbeit" für die cpu wird?
Nein. Du mußt jedes mal angeben wie die neue Farbe aussehen will. Im Endeffekt wirds darauf hinauslaufen dass Du eine ANSI-Escape-Sequenz schickst um etwas farbig zu machen, und nachdem Du den String ausgegeben hast der farbig sein soll, wieder eine Sequenz schickst, um die Farbe wieder auf den Standard zurückzustellen. Das ganze kannst Du natürlich in eine Funktion verpacken, die die Start-/End-Sequenz automatisch erstellt, und Dir dadurch Code beim Ausgeben sparen, aber nichtsdestotrotz kannst Du anders keine Farben in einer Konsole bauen.
Hier gilt natürlich wie immer: testen, und nur dann optimieren wenn's wirklich zu langsam ist, nicht im Vorfeld sinnlos probieren Optimierungen einfließen zu lassen die alles nur komplizierter machen als es sein müßte.
steht bei mir immer unten in der konsole: -Fortsetzen-
bis der text fertig ist. genau das gleiche würde ich gern mit eigenen text machen, allerdings fällt mir nix ein das mit WConio hinzukriegen (ansatzweise ja, aber nicht wie ich das wirklich realisieren kann).
Immer nur x Zeilen ausgeben (wobei x = Konsolenhöhe-1, 24 ist ein guter Richtwert), dann -Fortsetzen- auf eine eigene Zeile ausgeben, und dann wenn eine Taste gedrückt wurde "\r" gefolgt durch die neuen Daten (auch wieder nur x Zeilen maximal) ausgeben. Braucht man nicht mal irgendwelche ANSI-Escape-Sequenzen für.