Die neuesten Windows 10-Updates enthalten support for ANSI escape sequences in conhost.exe.Wie wird die neue Unterstützung für ANSI-Escape-Sequenzen in der Windows 10-Konsole verwendet?
ich in der Lage gewesen, um zu bestätigen, dass die Escape-Sequenzen richtig in cmd.exe aufgenommen, so habe ich die notwendigen Updates. Insbesondere habe ich versucht, prompt $e[?25l
eingeben, die den Cursor versteckt, und dann prompt $e[?25h
, die wiederum den Cursor zeigt.
Allerdings, wenn ich einen Python-Interpreter zu starten, und dann wie folgt vorgehen:
>>> import sys
>>> sys.stdout.write("\033[?25l")
Nun wird der Cursor nicht verborgen. Wie kann ich die Dinge richtig einrichten, damit die Konsole Escape-Sequenzen von Python bekommen kann?
Hallo Ross - Dank für diese wirklich nette Antwort :) Es scheint, dass Sie eine Menge Konsole bezogenes tun, und ich frage mich - wissen Sie auch, wie in einer Windows-Konsole nicht blockierenden Eingang zu erreichen , ähnlich wie man es unter Linux mit dem O_NONBLOCK-Flag machen könnte? Python Prompt Toolkit erreicht blockierungsfreie Eingaben mithilfe einer speziellen Lesefunktion, die von der Windows-API bereitgestellt wird: https://github.com/jonathanslenders/python-prompt-toolkit/blob/master/prompt_toolkit/terminal/win32_input.py#L99 - - Es scheint kein Flag zu geben, das ich setzen kann, was dann 'sys.stdin.read()' nicht blockieren würde? – user89
@ user89 Nein, leider gibt es kein Äquivalent zum O_NONBLOCK Flag. Windows verwendet ein anderes Modell, bei dem auf Ereignisse auf Handles und überlappende I/O gewartet wird (das letztere wird für Konsolenhandles nicht unterstützt). Sie müssen entweder über Ctypes in die Windows-API eintauchen oder sich von etwas wie Flüchen behandeln lassen. Die Curses-Unterstützung wird nicht mit Python für Windows ausgeliefert, aber Sie können einen Port separat herunterladen, siehe: https://docs.python.org/3.3/howto/curses.html –
Macht Sinn - ich denke, ich werde einfach warten um zu sehen, wie sich die Windows-Konsole verbessert (vor allem mit der bevorstehenden Veröffentlichung von bash unter Windows), und bleiben Sie jetzt bei der Verwendung von VMs mit Linux, um + Konsolen-Apps zu entwickeln. – user89