+ 2

How can I move the text cursor around in python 3.6?

In qpython you can use ANSI codes like '\033[1A', but in python 3.6 it doesn't seem to work. Is there another simple way to accomplish this?

27th May 2018, 10:46 AM
HonFu
HonFu - avatar
5 Answers
+ 2
Sorry, Kirk, you're right, the sequence got messed up. I meant something like '\033[1A' as an example for moving a line up and similar codes. They work on qpython but don't seem to work on 3.6 under windows, neither in IDLE nor in command prompt mode.
27th May 2018, 3:55 PM
HonFu
HonFu - avatar
+ 2
That colorama thing sounds nice and convenient, thank you for the hint - and for the background info! I'll be off my pc for two days, but itching to try it out asap. :-)
27th May 2018, 9:21 PM
HonFu
HonFu - avatar
+ 1
Your question is in Python so...just for the record: This is nice "here's what we have" documentation from Microsoft on virtual-terminal and ANSI sequences (includes source code samples, but in C unfortunately). https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences Here's a question detailing imports that may allow enabling this mode automatically (colorama and tendo.ansiterm): https://stackoverflow.com/questions/8358533/python-module-to-enable-ansi-colors-for-stdout-on-windows Despite the colors focus, colorama does support cursor positioning. Note that colorama intercepts ANSI escapes and issues API calls to change memory / display directly (different approach, same appearance).
27th May 2018, 7:07 PM
Kirk Schafer
Kirk Schafer - avatar
0
In general, this is more terminal-related than language-related, unless your encoding has changed in a way that's interfering with sending raw bytes. QPython may also have replaced the terminal in some way, but first: Your example doesn't appear to be quite right, so I also want to suggest confirming that you are sending the right sequences.
27th May 2018, 3:44 PM
Kirk Schafer
Kirk Schafer - avatar
0
It will be a little while before I can test this directly, so...for Windows 10 (I can keep looking if wrong OS): There's a "solution" (actually bug, leaving the virtual terminal enabled) above this "here's code, try this" answer, but I thought the code was better to link. https://bugs.python.org/issue30075#msg291732 If this (the VT) is the problem, you would enable the VT, save the returned terminal mode value, then restore the mode (your saved value) on exit.
27th May 2018, 4:16 PM
Kirk Schafer
Kirk Schafer - avatar