删除Python中的最后一个STDOUT行

jav*_*nix 30 python stdout command-prompt

我试图找出如何抑制在stdout上显示用户输入.

raw_input()后跟任何print语句保留用户键入的内容.getpass()不显示用户键入的内容,但它确实保留了"Password:"提示符.

为了解决这个问题,我想只删除最后一行(它也会从行尾删除换行符).

Som*_*ude 41

您可以使用VT100控制代码执行所需操作.

这样的事情可能是:

CURSOR_UP_ONE = '\x1b[1A'
ERASE_LINE = '\x1b[2K'
print(CURSOR_UP_ONE + ERASE_LINE)
Run Code Online (Sandbox Code Playgroud)

  • `print(CURSOR_UP_ONE + ERASE_LINE + CURSOR_UP_ONE)`为我做了诀窍. (10认同)
  • @RuiBotelho这在很大程度上取决于所使用的终端类型.例如,Windows命令提示符窗口因未处理VT100转义序列或仅仅是非常有限的子集而闻名.另一方面,任何Linux或OSX终端都应该非常好地实现它们. (2认同)