1

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

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

4

2 回答 2

3

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

from __future__ import print_function

import time
import sys

print("hello", end = '')
sys.stdout.flush()
time.sleep(1)
print("\rxxxxx")
sys.stdout.flush()
于 2012-08-20T17:05:11.120 回答
0

您可以使用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.

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

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

于 2012-08-20T16:34:27.243 回答