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


当前回答

转义序列呢?

print(chr(27) + "[2J")

其他回答

您可以对terminfo数据库进行分解,但这样做的函数无论如何都是在curses中。

您可以尝试使用clear,但它可能并非在所有Linux发行版上都可用。在windows上使用你提到的cls。

import subprocess
import platform

def clear():
    subprocess.Popen( "cls" if platform.system() == "Windows" else "clear", shell=True)

clear()

注意:控制终端屏幕可能被认为是一种糟糕的形式。你在考虑使用期权吗?让用户自己决定是否要清除屏幕可能会更好。

转义序列呢?

print(chr(27) + "[2J")

这将在Python2或Python3两个版本中工作

print (u"{}[2J{}[;H".format(chr(27), chr(27)))

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

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

Python版本>= 3.3.0