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


当前回答

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

import subprocess
import platform

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

clear()

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

其他回答

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

我将这样做,使它看起来更像bash:

只需在主目录下创建一个名为.pythonstartup的文件,并在函数中使用poke的答案

在Linux上:

echo "from subprocess import call
def clear(int=None):  
    call('clear')
    if int == 0:
       exit()
clear()" >> $HOME/.pythonstartup ; export PYTHONSTARTUP=$HOME/.pythonstartup ; python

您可以添加export PYTHONSTARTUP=$HOME/。Pythonstartup到你的。/bashrc文件

因为我关心的是空间;调用该函数将不会在启动时显示python解释器描述,但您可以删除clear()以保留它。

像使用普通函数一样使用它应该不会打印退出状态:

>>> clear()

如果您将参数0传递给函数,它将清除屏幕并成功退出,因此您可以在干净的屏幕中继续使用shell

>>> clear(0)

这适用于所有平台,并且在Python 2和3中都有效。

def clear(number):
    for i in range(number):
        print(" ")

然后输入clear(numberhere)来清除。

转义序列呢?

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

默认情况下,os.system("clear")/os.system("cls")将返回int类型为0。 我们可以通过将它分配给一个变量并删除它来完全清除屏幕。

def clear():
    if (os.name == 'nt'):    
        c = os.system('cls')
    else:
        c = os.system('clear')
    del c  # can also omit c totally

#clear()