这几乎是clear terminal in python的副本,但不完全。
这个问题是:任何标准都带有电池"方法存在从python脚本清除终端屏幕,还是我必须去curses(库,而不是单词)?
当您在终端上输入clear
时,会出现所有响应 - 屏幕上的所有内容都会消失,除了最顶部的空命令行。但是,如果您愿意,可以向上滚动以查看您之前所做的事情。
我正在寻找一种方法来做到这一点,但是不允许用户向上滚动。它相当于command+K
在macOS上的作用。
该应用程序是一款多人纸牌游戏,我不希望玩家能够向上滚动以查看其他玩家的手牌。
答案 0 :(得分:4)
您可以使用标准库subprocess
模块中的subprocess.call()
将reset
命令发送到终端,该终端将重新初始化终端并实际执行与clear
类似的操作但也要清除回滚历史。
import subprocess
subprocess.call('reset')
或者,我从this answer了解到,您可以使用命令tput reset
,这将立即清除终端,而仅使用reset
您将会遇到轻微的延迟。也可以使用subprocess.call()
调用此方法,如下所示:
subprocess.call(['tput', 'reset'])
有关reset
命令的更多信息,请执行:
$ man reset
有关subprocess
模块的详细信息,请参阅the documentation。
我已经在Ubuntu上测试了这两个,但希望它也适用于OSX / macOS。如果没有,也许您可以将subprocess
与this solution结合使用,但我无法对其进行测试。
答案 1 :(得分:2)
Python附带了一个curses
模块,它基本上允许您在文本屏幕上实现各种GUI。除非您有意实现滚动文本窗口,否则玩家将无法滚动回上一个输出。终端的回滚功能在curses应用程序中没有做任何事情,因为实际上什么都没有滚动屏幕 - 而是被覆盖了。