我想创建一个命令行密码文件解密脚本,该脚本将在终端窗口中显示加密文件的内容最多 10 秒,然后自动清除文本。
我不太确定这种功能的正确术语是什么,如果可以通过正确的搜索字符串获得答案,我很抱歉。
如果您只需要显示一行“秘密”输出,则可以使用“回车”并覆盖该行。它不会在终端历史记录中留下任何痕迹。
from __future__ import print_function
import time
import sys
print("hello", end = '')
sys.stdout.flush()
time.sleep(1)
print("\rxxxxx")
sys.stdout.flush()
您可以使用ansi 转义序列清除终端。这适用于几乎所有终端仿真器(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.
但是,如果您的程序的输出被重定向到一个文件,它仍然会被捕获。
此外,您可能必须禁用终端的回滚缓冲区。