在终端中显示未存储在终端历史记录中的临时消息

时间:2012-08-20 14:09:23

标签: python terminal

我想创建一个命令行密码文件解密脚本,它会在终端窗口中显示加密文件的内容,最多可以说10秒,之后文本会自动清除。

我不确定这种功能的正确术语是什么,如果答案可以通过正确的搜索字符串获得,那就很抱歉。

2 个答案:

答案 0 :(得分:2)

如果您只需要显示一行“秘密”输出,则可以使用“回车”并覆盖该行。它不会在终端历史记录中留下任何痕迹。

from __future__ import print_function

import time
import sys

print("hello", end = '')
sys.stdout.flush()
time.sleep(1)
print("\rxxxxx")
sys.stdout.flush()

答案 1 :(得分:0)

您可以使用ansi escape sequences清除终端。这适用于几乎所有终端模拟器(win32控制台除外)。

import time
import sys

print '\x1b[0;0H\x1b[2J' # home cursor, clear screen
print 'terribly secret file contents'
time.sleep(2)
print '\x1b[2J'
sys.stdout.flush() # flush output buffer.

但是,如果您的程序输出被重定向到文件,它仍将被捕获。

此外,您可能必须禁用终端的回滚缓冲区。