Ich bin Newbe in Python und will ein unter Rexx (WinXP) laufendes Programm in Python zum Laufen bringen.
Dazu benötige ich bei der Text-Ausgabe auf Konsole (=Terminal) verschieden farbigen Text.
Unter Rexx (es läuft R4 von Kilowatt Software unter Win XP) ist das ganz simpel. Man nutzt angeblich das ANSI-Relikt. Das sieht dann so aus:
-----
vor = d2c(27)||"["
nach = "m"
int=vor||"1"||nach
norsw = vor||"0;30"||nach /* schwarz, also unsichtbar auf schwarz */
norws = vor||"0;37"||nach /* normalweiss */
intws = vor||"1;37"||nach /* intensivweiss fuer eingelesene Werte */
intrt = vor||"1;31"||nach /* intensivrot fuer errechnete Werte */
intgr = vor||"1;32"||nach /* intensivgrün fuer noch freie Werte */
...
eol=d2c(201)
...
say intrt||eol||"1" /* ergibt eine intensivrote "Ecke oben links" und eine 1 */
------
Die Variable "eol" (besser ist natürlich ein unverfänglicherer Name) läßt sich in Python nachbilden:
eol=chr(201)
...
print eol
Leider gelingt mir kein Konstrukt, dass verschieden farbige Zeichen so simpel darstellt. Den Wunsch auf eine allgemein auf allen Konsolen (Terminals) laufende Konstruktion habe ich bereits aufgegeben...
Gibt es doch eine Möglichkeit?
Farbiger Text auf Konsole(Terminal)
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
ANSI.sys gibt es unter Windows XP nicht mehr. Effbot hat ein Console-Modul, damit sollte es gehen.quots hat geschrieben:Gibt es doch eine Möglichkeit?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Effbots Console-Modul leitet ein: "It probably works under Windows XP, but it hasn’t been tested on that platform." und es ist letztmalig geupdatet 2000.
Ein nicht vertrauensbildender Umstand.
Auch benötige ich kein Modul zur Textpositionierung, weil ich fortlaufend ausgebe, sondern ausschliesslich eines zum Einfärben des Textes. Aber vielleicht geht es damit doch, muß mal sehen. Danke!
Ein nicht vertrauensbildender Umstand.
Auch benötige ich kein Modul zur Textpositionierung, weil ich fortlaufend ausgebe, sondern ausschliesslich eines zum Einfärben des Textes. Aber vielleicht geht es damit doch, muß mal sehen. Danke!
Es geht um Konsolenausgaben wie man sie aus den alten DOS-Zeiten kennt. Da würde ich jetzt nicht dauernd Updates erwarten. Wenn das Modul funktioniert, funktioniert es.
Du kannst es ja unter XP ausgiebig testen und dem Effbot sagen, wie er die Informationen auf der Seite mal updaten kann.
Du kannst es ja unter XP ausgiebig testen und dem Effbot sagen, wie er die Informationen auf der Seite mal updaten kann.
"Es geht um Konsolenausgaben wie man sie aus den alten DOS-Zeiten kennt. Da würde ich jetzt nicht dauernd Updates erwarten. Wenn das Modul funktioniert, funktioniert es.BlackJack hat geschrieben:Du kannst es ja unter XP ausgiebig testen und dem Effbot sagen, wie er die Informationen auf der Seite mal updaten kann.
"Actually... the Console Module works with Windows XP." <- gepostet am 31. Jul 1007 auf eben jener Seite
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
Whooha, das gibt es schon so lange?lunar hat geschrieben:...gepostet am 31. Jul 1007 auf eben jener Seite
Cool... man muss also nur "Vorschau" und "Absenden" verwechseln, um die Erfindung von Python um mindestens tausend Jahre rückzudatierenquerdenker hat geschrieben:Whooha, das gibt es schon so lange?lunar hat geschrieben:...gepostet am 31. Jul 1007 auf eben jener Seite
Hallo, ich bins wieder,
1. effbot's ConsoleModul arbeitet tatsächlich unter XP. Habs geladen und probiert. Manche der Befehle arbeiten aber nicht fehlerfrei.
2. ->lunar: Ja der bestätigende Satz zu XP steht da, leider erst am Ende der ganzen Seite...
3. ConsoleModul kann offenbar aber nur mit einer umständlichen Funktion farbigen Text ausgeben. Will sagen. einen einfachen Steuerbefehl zum temporären Umschalten habe ich nicht erzeugen können, vielleicht bin ich nicht kreativ genug (b.B. will ich: print a+b+c..., wobei nur b rot sein soll, a und c weiß, alles auf schwarz). Zweiter Nachteil für mich, die Console ist mit den Positionsangaben ein statisches Fenster. Mir wäre ein scrollendes Fenster beim Portieren lieber...
4. IPython: Ich scheitere bereits an der Zeremonie des Installierens oder bin einfach zu ... . Ich erhalte ein PythonWin 2.5.2 mit einem "Interaktiven Fenster" darin. Und nun? Wie bekomme ich dort beispielsweise farbigen Text hineinbefohlen?
5. Überhaupt finde ich die Syntax-Beschreibungen zu umständlich. Was ich bei allem (Python, Console, IPython u.a.) vermisse, sind wenigstens ein Beispiel zu jeder (!) Aussage, weil man sonst die Aussagen auf Englisch nicht richtig deuten kann. Ich liebe gut geschriebene Bücher!
1. effbot's ConsoleModul arbeitet tatsächlich unter XP. Habs geladen und probiert. Manche der Befehle arbeiten aber nicht fehlerfrei.
2. ->lunar: Ja der bestätigende Satz zu XP steht da, leider erst am Ende der ganzen Seite...
3. ConsoleModul kann offenbar aber nur mit einer umständlichen Funktion farbigen Text ausgeben. Will sagen. einen einfachen Steuerbefehl zum temporären Umschalten habe ich nicht erzeugen können, vielleicht bin ich nicht kreativ genug (b.B. will ich: print a+b+c..., wobei nur b rot sein soll, a und c weiß, alles auf schwarz). Zweiter Nachteil für mich, die Console ist mit den Positionsangaben ein statisches Fenster. Mir wäre ein scrollendes Fenster beim Portieren lieber...
4. IPython: Ich scheitere bereits an der Zeremonie des Installierens oder bin einfach zu ... . Ich erhalte ein PythonWin 2.5.2 mit einem "Interaktiven Fenster" darin. Und nun? Wie bekomme ich dort beispielsweise farbigen Text hineinbefohlen?
5. Überhaupt finde ich die Syntax-Beschreibungen zu umständlich. Was ich bei allem (Python, Console, IPython u.a.) vermisse, sind wenigstens ein Beispiel zu jeder (!) Aussage, weil man sonst die Aussagen auf Englisch nicht richtig deuten kann. Ich liebe gut geschriebene Bücher!
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wenn a, b und c Objekte sind, die sich selbst farbig darstellen können, ist das gar kein Problem.quots hat geschrieben:3. ConsoleModul kann offenbar aber nur mit einer umständlichen Funktion farbigen Text ausgeben. Will sagen. einen einfachen Steuerbefehl zum temporären Umschalten habe ich nicht erzeugen können, vielleicht bin ich nicht kreativ genug (b.B. will ich: print a+b+c..., wobei nur b rot sein soll, a und c weiß, alles auf schwarz).
Positionsangaben und Scrollen vertragen sich nicht, da du ja dann nicht die Sicherheit hast dass wenn du an Position 0,0 ein A hingeschrieben hast, da immer noch ein A ist - das Fenster könnte auch schon weitergescrollt sein.quots hat geschrieben:Zweiter Nachteil für mich, die Console ist mit den Positionsangaben ein statisches Fenster. Mir wäre ein scrollendes Fenster beim Portieren lieber...
IPython ist nur eine alternative Shell für den Python-Interpreter die Farben benutzt. Eigene Befehle zum ausgeben von farbigen Text bietet sie nicht.quots hat geschrieben:4. IPython: Ich scheitere bereits an der Zeremonie des Installierens oder bin einfach zu ... . Ich erhalte ein PythonWin 2.5.2 mit einem "Interaktiven Fenster" darin. Und nun? Wie bekomme ich dort beispielsweise farbigen Text hineinbefohlen?
Syntax-Beschreibungen?quots hat geschrieben:5. Überhaupt finde ich die Syntax-Beschreibungen zu umständlich. Was ich bei allem (Python, Console, IPython u.a.) vermisse, sind wenigstens ein Beispiel zu jeder (!) Aussage, weil man sonst die Aussagen auf Englisch nicht richtig deuten kann. Ich liebe gut geschriebene Bücher!
Apropos, es gibt den Interpreter, da kannst du dir deine Beispiele selbst bauen und testen.
Alternativ: ein entwicklerfreundliches Betriebssystem verwenden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
->Leonidas: Ad 1) Schreib mir bitte eine Beispiellösung auf! Meine Aufgabe war doch klar formuliert. Ich wollte Zeichenreihen in gemischten Farben ausgeben. In Rexx geht das so wie ganz oben skizziert. Ich definiere "vor", "nach" und die Zahlencodes oder noch einfacher das jeweils Ganze und kann dann die Zeichen (Variable a, b, c repräsentieren selbige)ausgeben, wobei die Doppelpipe zwischen Zeichenketten dem + unter Python entspricht:
(unter Rexx) say intws||a||intrt||b||intws||c
(unter Python) print ?+a+??+b+?+c
Welche Funktion soll ich für ? und ?? einsetzen, wobei keine feste Position erzeugt werden soll?
Ad 4) Wenn Ipython keine eigenen Befehle zur farbigen Textausgabe besitzt, warum hast Du dann geschrieben, dass IPython unter Linux und Windows "gleichzeitig bunt" seien? Ein Witz?
Ad 5) "entwicklerfreundliches BS verwenden" ??? Mein (Beispiel)Prog. läuft unter Rexx unter OS/2 und unter WinXP. Unter Linux gibts Rexx als "Regina", wo es läuft. Nun möchte ich das Ganze aber nach Python portieren. Komischerweise laufen die Steuerbefehle zur farbigen Textausgabe unter verschiedenen Konsolen=Teminals unter Linux, man braucht gar kein Rexx. Unter WinXp aber gehts nur mithilfe von Rexx. Offenbar ist es dort nicht entbehrlich. Aber wie sieht es unter Python unter XP aus? Hier geht es weder unter der IDLE noch unter "Command Line". Es muß doch einen Weg geben, denn wieso kann Rexx das unter XP in der Shell?
(unter Rexx) say intws||a||intrt||b||intws||c
(unter Python) print ?+a+??+b+?+c
Welche Funktion soll ich für ? und ?? einsetzen, wobei keine feste Position erzeugt werden soll?
Ad 4) Wenn Ipython keine eigenen Befehle zur farbigen Textausgabe besitzt, warum hast Du dann geschrieben, dass IPython unter Linux und Windows "gleichzeitig bunt" seien? Ein Witz?
Ad 5) "entwicklerfreundliches BS verwenden" ??? Mein (Beispiel)Prog. läuft unter Rexx unter OS/2 und unter WinXP. Unter Linux gibts Rexx als "Regina", wo es läuft. Nun möchte ich das Ganze aber nach Python portieren. Komischerweise laufen die Steuerbefehle zur farbigen Textausgabe unter verschiedenen Konsolen=Teminals unter Linux, man braucht gar kein Rexx. Unter WinXp aber gehts nur mithilfe von Rexx. Offenbar ist es dort nicht entbehrlich. Aber wie sieht es unter Python unter XP aus? Hier geht es weder unter der IDLE noch unter "Command Line". Es muß doch einen Weg geben, denn wieso kann Rexx das unter XP in der Shell?
@quots: 4. War kein Witz sondern ein Hinweis auf ein Python-Programm, das sowohl unter Linux als auch unter Windows farbige Textausgaben hinbekommt. Man könnte ja mal auf die Idee kommen in den Quelltext zu schauen wie das gemacht wird…
5. Die Rexx-Implementierung unter Windows wird wahrscheinlich selbst einen ANSI-Interpreter in den Ausgaberoutinen eingebaut haben.
5. Die Rexx-Implementierung unter Windows wird wahrscheinlich selbst einen ANSI-Interpreter in den Ausgaberoutinen eingebaut haben.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das geht in Windows schlichtweg so nicht, weil das Terminal keine ASCII-Color-Sequenzen einfach so unterstützt. Über Hacks wie mit PyReadline scheint das auch irgendwie zu gehen, PyReadline welches von Ipython verwendet wird, macht das in etwa so.quots hat geschrieben:->Leonidas: Ad 1) Schreib mir bitte eine Beispiellösung auf! Meine Aufgabe war doch klar formuliert. Ich wollte Zeichenreihen in gemischten Farben ausgeben. In Rexx geht das so wie ganz oben skizziert. Ich definiere "vor", "nach" und die Zahlencodes oder noch einfacher das jeweils Ganze und kann dann die Zeichen (Variable a, b, c repräsentieren selbige)ausgeben, wobei die Doppelpipe zwischen Zeichenketten dem + unter Python entspricht:
(unter Rexx) say intws||a||intrt||b||intws||c
(unter Python) print ?+a+??+b+?+c
Welche Funktion soll ich für ? und ?? einsetzen, wobei keine feste Position erzeugt werden soll?
Ein Beispiel kann ich dir nicht geben, denn ich kann das mangels Windows nicht testen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Also bringt mir Python nur Mühe, aber keine Möglichkeit, ein auf beiden Plattformen laufendes Programm zu erzeugen.
So muß ich wohl oder übel bei Rexx bleiben, obwohl das nach Ansicht meines Sohnes urst-alt sei.
Die Systemportabilität von Programmen ist aber doch wohl immer noch ein erstrebenswertes Ziel oder?
So muß ich wohl oder übel bei Rexx bleiben, obwohl das nach Ansicht meines Sohnes urst-alt sei.
Die Systemportabilität von Programmen ist aber doch wohl immer noch ein erstrebenswertes Ziel oder?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Sicher. Aber Farbcodes musst du eben Platformspezifisch lösen, das ist alles. PyReadline scheint sogar ANSI-Farben zu parsen, aber das musst du schon testen, eine Dokumentation dazu habe ich auch nicht wirklich finden können.quots hat geschrieben:Also bringt mir Python nur Mühe, aber keine Möglichkeit, ein auf beiden Plattformen laufendes Programm zu erzeugen.
Da hat dein Sohn rechtquots hat geschrieben:So muß ich wohl oder übel bei Rexx bleiben, obwohl das nach Ansicht meines Sohnes urst-alt sei.
Ja. Wobei, Windows-Support einstellen könnte man ja durchaus mal überdenkenquots hat geschrieben:Die Systemportabilität von Programmen ist aber doch wohl immer noch ein erstrebenswertes Ziel oder?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
In der IPython doc steht das für Windows die "Gary Bishop's support extensions" genutzt wird. Nähere Informationen dazu konnte ich allerdings nicht finden.
Allerdings sieht der sourcecode interessant aus, wie z.B.: http://ipython.scipy.org/dist/nightly_s ... lorANSI.py
Wie es aussieht, sind allerdings so einige Abhängigkeiten da. Man kann also IMHO nicht so einfach die Geschichte rauslösen und verwenden.
Ich kennen IPython nicht genau, aber vielleicht kann man es einfach installieren und die Routinen zur farbigen Textausgabe im Python skripts nutzten???
Allerdings sieht der sourcecode interessant aus, wie z.B.: http://ipython.scipy.org/dist/nightly_s ... lorANSI.py
Wie es aussieht, sind allerdings so einige Abhängigkeiten da. Man kann also IMHO nicht so einfach die Geschichte rauslösen und verwenden.
Ich kennen IPython nicht genau, aber vielleicht kann man es einfach installieren und die Routinen zur farbigen Textausgabe im Python skripts nutzten???
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja, um genau zu sein UNC Readline, welches inzwischen in das bereits erwähnte PyReadline aufgegangen ist.jens hat geschrieben:In der IPython doc steht das für Windows die "Gary Bishop's support extensions" genutzt wird. Nähere Informationen dazu konnte ich allerdings nicht finden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
IPython klingt nach IronPython (vgl. CPython). So what?jens hat geschrieben:btw. komischer name... Readline hört sich für mich nach lesen/input an und nicht nach Ausgabe
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice