像大多数Python开发人员一样,我通常打开一个控制台窗口,运行Python解释器来测试命令、dir()之类的东西、help()之类的东西,等等。

像任何控制台一样,在一段时间后,过去命令和打印的可见积压会变得混乱,并且在多次重新运行相同的命令时有时会令人困惑。我想知道是否以及如何清除Python解释器控制台。

我听说过做一个系统调用,或者在Windows上调用cls,或者在Linux上清除,但我希望有一些我可以命令解释器本身做的事情。

注意:我在Windows上运行,所以Ctrl+L不起作用。


当前回答

我不确定Windows的“shell”是否支持这个,但在Linux上:

打印”033年\ [2 j”

https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes

在我看来,用os调用cls通常是一个坏主意。想象一下,如果我设法更改系统上的cls或clear命令,而您以管理员或根用户身份运行脚本。

其他回答

这里有一些更方便的跨平台的东西

import os

def cls():
    os.system('cls' if os.name=='nt' else 'clear')

# now, to clear the screen
cls()

Wiper很酷,它的好处是我不需要在它周围输入'()' 这里有一些细微的变化

# wiper.py
import os
class Cls(object):
    def __repr__(self):
        os.system('cls')
        return ''

用法很简单:

>>> cls = Cls()
>>> cls # this will clear console.

就用这个吧。

打印“\ n”* 1000

>>> ' '*80*25

更新:80x25不太可能是控制台窗口的大小,所以要获得真正的控制台尺寸,使用从寻呼机模块的函数。Python没有提供任何与核心发行版类似的东西。

>>> from pager import getheight
>>> '\n' * getheight()

Linux中的操作系统命令clear和Windows中的cls输出一个“神奇的字符串”,你可以直接打印出来。要获得字符串,使用popen执行命令,并将其保存在变量中以供以后使用:

from os import popen
with popen('clear') as f:
    clear = f.read()

print clear

在我的机器上,字符串是'\x1b[H\x1b[2J'。