像大多数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命令,而您以管理员或根用户身份运行脚本。

其他回答

这里有两种很好的方法:

1.

import os

# Clear Windows command prompt.
if (os.name in ('ce', 'nt', 'dos')):
    os.system('cls')

# Clear the Linux terminal.
elif ('posix' in os.name):
    os.system('clear')

2.

import os

def clear():
    if os.name == 'posix':
        os.system('clear')

    elif os.name in ('ce', 'nt', 'dos'):
        os.system('cls')


clear()

我是python的新手(非常非常新),在我正在阅读的一本书中,他们教我如何创建这个小函数,以清除控制台可见的积压和过去的命令和打印:

打开shell /创建新文档/创建函数如下:

def clear():
    print('\n' * 50)

将它保存在你的python目录的lib文件夹中(我的是C:\Python33\ lib) 下次你需要清除控制台时,只需调用函数:

clear()

就是这样。 PS:你可以任意命名你的函数。我见过人们使用“雨刷”“擦”等变体。

我的方法是这样写一个函数:

import os
import subprocess

def clear():
    if os.name in ('nt','dos'):
        subprocess.call("cls")
    elif os.name in ('linux','osx','posix'):
        subprocess.call("clear")
    else:
        print("\n") * 120

然后调用clear()清除屏幕。 这适用于windows, osx, linux, bsd…所有的操作系统。

如果你在.inputrc中使用vim键绑定:

set editing-mode vi

它是:

ESC Ctrl-L

我发现最简单的方法就是关闭窗口并运行模块/脚本重新打开shell。