是否存在任何标准的“附带电池”方法来清除Python脚本中的终端屏幕,或者我必须去诅咒(库,而不是单词)?


当前回答

一个纯Python解决方案。 不依赖于ANSI或外部命令。 只有您的终端必须能够告诉您视图中有多少行。

from shutil import get_terminal_size
print("\n" * get_terminal_size().lines, end='')

Python版本>= 3.3.0

其他回答

如果您希望在使用python shell时清除您的终端。然后,您可以执行以下操作清除屏幕

import os
os.system('clear')

如果您所需要的只是清除屏幕,那么这可能就足够了。问题是在linux版本之间甚至没有一个100%跨平台的方法来做到这一点。问题是终端的实现都支持略微不同的东西。我很确定“clear”在任何地方都适用。但是更“完整”的答案是使用xterm控制字符来移动光标,但这需要xterm本身。

在不了解更多问题的情况下,你的解决方案似乎已经足够好了。

对于Windows,只能在解释器命令行上(而不是GUI)!简单的类型: (记住在python中使用适当的缩进):

import os
def clear():
    os.system('cls')

每次在shell(命令行)上输入clear(),它都会清除shell上的屏幕。如果退出shell,那么在打开新的Python(命令行)shell时,必须重新执行上述操作。

注意:无论你使用的是哪个版本的Python,明确地(2.5、2.7、3.3和3.4)。

如果您使用的是Linux/UNIX系统,那么打印ANSI转义序列以清除屏幕就可以了。您还需要将光标移动到屏幕的顶部。这将在任何支持ANSI的终端上工作。

import sys
sys.stderr.write("\x1b[2J\x1b[H")

这将不能在Windows上工作,除非ANSI支持已启用。Windows可能有一个等效的控制序列,但我不知道。

你可以使用call()函数来执行终端的命令:

from subprocess import call
call("clear")