remove last STDOUT line in Python

javanix picture javanix · Sep 25, 2012 · Viewed 20.5k times · Source

I am trying to figure out how to suppress the display of user input on stdout.

raw_input() followed by any print statement preserves what the user typed in. getpass() does not show what the user typed, but it does preserve the "Password:" prompt.

To fix this, I would like to only remove the last line (which would remove the newline from the end of the line as well).

Answer

Some programmer dude picture Some programmer dude · Sep 25, 2012

You might be able to do what you want with VT100 control codes.

Something like this maybe:

CURSOR_UP_ONE = '\x1b[1A'
ERASE_LINE = '\x1b[2K'
print(CURSOR_UP_ONE + ERASE_LINE)