如何清除解释器控制台?

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

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

我听说过系统调用,在Windows上调用cls或者在Linux上clear ,但是我希望有一些东西我可以指挥解释器本身去做。

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

正如你所提到的,你可以做一个系统调用:

 >>> import os >>> clear = lambda: os.system('cls') >>> clear() 

我不确定在Windows中的任何其他方式。

这里有一些方便,这是一个更多的跨平台

 import os def cls(): os.system('cls' if os.name=='nt' else 'clear') # now, to clear the screen cls() 

那么,这是一个快速的黑客:

 >>> clear = "\n" * 100 >>> print clear >>> ...do some other stuff... >>> print clear 

或者保存一些输入,把这个文件放到你的python搜索路径中:

 # wiper.py class Wipe(object): def __repr__(self): return '\n'*1000 wipe = Wipe() 

那么你可以从解释器做到这一切你喜欢:)

 >>> from wiper import wipe >>> wipe >>> wipe >>> wipe 

虽然这是一个老问题,但我认为我会贡献一些总结我认为是最好的其他答案的东西,并通过建议您将这些命令放入一个文件并设置您的PYTHONSTARTUP环境变量指向它。 由于我现在在Windows上,这种方式有点偏颇,但可以轻易地倾向于另一个方向。

下面是我发现的一些文章,介绍如何在Windows上设置环境变量:
何时使用sys.path.append和修改%PYTHONPATH%就足够了
如何在Windows XP中管理环境变量
配置系统和用户环境变量
如何在Windows中使用全局系统环境变量

顺便说一句,不要把引号放在文件路径的周围,即使它里面有空格。

无论如何,这是我的代码放入(或添加到您现有的)Python启动脚本:

 # ==== pythonstartup.py ==== # add something to clear the screen class cls(object): def __repr__(self): import os os.system('cls' if os.name == 'nt' else 'clear') return '' cls = cls() # ==== end pythonstartup.py ==== 

顺便说一句,你也可以使用@ 三联的 __repr__技巧来改变exit()进入exit (和别名同上quit ):

 class exit(object): exit = exit # original object def __repr__(self): self.exit() # call original return '' quit = exit = exit() 

最后,这里还有其他一些将主解释器提示符从>>>更改为cwd + >>>

 class Prompt: def __str__(self): import os return '%s >>> ' % os.getcwd() import sys sys.ps1 = Prompt() del sys del Prompt 

毫无疑问,最快和最简单的方法是Ctrl + L。

这与终端上的OS X相同。

你有很多方法在Windows上进行:

1.使用键盘快捷键:

 Press CTRL + L 

2.使用系统调用方法:

 import os cls = lambda: os.system('cls') cls() 

3.使用新行打印100次:

 cls = lambda: print('\n'*100) cls() 

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

 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 …所有操作系统。

刮水器很酷,关于它的好处是我不必在里面输入“()”。 这是微小的变化

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

用法很简单:

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

这是合并所有其他答案的权威解决方案 。 特征:

  1. 您可以代码复制粘贴到您的shell或脚本中。
  2. 你可以使用它,只要你喜欢:

     >>> clear() >>> -clear >>> clear # <- but this will only work on a shell 
  3. 您可以其作为模块导入

     >>> from clear import clear >>> -clear 
  4. 你可以它叫做脚本:

     $ python clear.py 
  5. 它是真正的多平台 ; 如果它不能识别你的系统
    centdosposix )它将回退到打印空白行。


您可以在这里下载[完整]文件: https : //gist.github.com/3130325
或者如果你只是在寻找代码:

 class clear: def __call__(self): import os if os.name==('ce','nt','dos'): os.system('cls') elif os.name=='posix': os.system('clear') else: print('\n'*120) def __neg__(self): self() def __repr__(self): self();return '' clear=clear() 

使用空闲。 它有许多方便的功能。 例如, Ctrl + F6重置控制台。 关闭并打开控制台是清除它的好方法。

我使用iTerm和Mac OS本地终端应用程序。

我只是按⌘+ k

我在Windows XP,SP3上使用MINGW / BASH。

(坚持在.pythonstartup中)
#我的CTRL-L已经很有用了,但是这可能会帮助其他人
#尽管在窗口底部的叶子提示…
导入readline
readline.parse_and_bind('\ Cl:clear-screen')

#这在BASH中起作用,因为我在.inputrc中也有,但是对于一些
#当我进入Python的时候它会被抛弃
readline.parse_and_bind('\ Cy:kill-whole-line')


我无法忍受再次输入“exit()”,并对martineau / Triptych的技巧感到高兴:

我稍微篡改了它(卡在.pythonstartup中)

 class exxxit(): """Shortcut for exit() function, use 'x' now""" quit_now = exit # original object def __repr__(self): self.quit_now() # call original x = exxxit() 

 Py2.7.1>help(x) Help on instance of exxxit in module __main__: class exxxit | Shortcut for exit() function, use 'x' now | | Methods defined here: | | __repr__(self) | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | quit_now = Use exit() or Ctrl-Z plus Return to exit 

这个如何清楚

 - os.system('cls') 

这是尽可能短的!

Linux中的OS命令clear ,Windows中的cls输出一个“魔术串”,您可以直接打印。 要得到字符串,用popen执行命令并将其保存在一个变量中供以后使用:

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

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

我是新来的Python(真的很新),并在我正在阅读的书籍之一,以熟悉他们教的语言,如何创建这个小函数来清除可见的积压控制台和过去的命令和打印:

打开shell /创建新文档/创建功能如下:

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

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

 clear() 

而已。 PS:你可以任意指定你的功能。 艾维看到人们使用“雨刮”“擦”和变化。

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

只是用这个..

print '\n'*1000

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

print "\033[2J"

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

在我看来,用os调用cls通常是一个糟糕的主意。 想象一下,如果我设法改变你的系统上的CLS或清除命令,并以admin或root身份运行你的脚本。

我可能会迟到,但这是一个非常简单的方法

类型:

 def cls(): os.system("cls") 

所以你想要清除屏幕只需输入你的代码

 cls() 

最好的方式可能! (Credit: https : //www.youtube.com/watch?annotation_id = annnotation_3770292585&feature = viv&src_vid = bguKhMnvmb8&v = LTGEp9c6Z-U )

编辑:我刚刚阅读“Windows”,这是为Linux用户,对不起。


在bash中:

 #!/bin/bash while [ "0" == "0" ]; do clear $@ while [ "$input" == "" ]; do read -p "Do you want to quit? (y/n): " -n 1 -e input if [ "$input" == "y" ]; then exit 1 elif [ "$input" == "n" ]; then echo "Ok, keep working ;)" fi done input="" done 

将它保存为“whatyouwant.sh”,chmod + x然后运行:

 ./whatyouwant.sh python 

或者Python以外的东西(空闲,不管)。 这会问你是否真的要退出,如果没有,它会重新运行python(或者你给出的命令作为参数)。

这将清除所有,屏幕和所有变量/对象/任何你创建/导入的Python。

在python中,只需要在退出时输入exit()。

这应该是跨平台的,并且根据os.system文档使用首选的os.system而不是os.system 。 应该在Python> = 2.4下工作。

 import subprocess import os if os.name == 'nt': def clearscreen(): subprocess.call("cls", shell=True) return else: def clearscreen(): subprocess.call("clear", shell=True) return 

好的,所以这是一个技术性较差的答案,但我使用Notepad ++的Python插件,事实证明,您可以通过右键单击并单击“清除”来手动清除控制台。 希望这可以帮助那里的人!

上面提到了魔术字符串 – 我相信它们来自terminfo数据库:

http://www.google.com/?q=x#q=terminfo

http://www.google.com/?q=x#q=tput+command+in+unix

$ tput清除| od -t x1z 0000000 1b 5b 48 1b 5b 32 4a>。[H. [2J <0000007

我使用Spyder(Python 2.7),并清理我使用的解释器控制台

%明确

强制命令行到顶部,我不会看到以前的旧命令。

或者我点击控制台环境中的“选项”,然后选择“重新启动内核”,删除所有内容。

这里有两个很好的方法:

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() 
 >>> ' '*80*25 

更新 :80×25不太可能是控制台窗口的大小,所以要获得真正的控制台维度,使用来自寻呼机模块的功能。 Python不提供任何类似于核心分布的东西。

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

如果它的Mac上一个简单的CMD + K做的伎俩

在提示符下输入“cls”并按回车。

在Spyder中,当你想清除变量资源管理器中的所有变量时,只需在控制台中键入global()。clear() ,它们将全部消失。

https://github.com/adoxa/ansicon/releases

有一个工具可以安装在Windows上,然后使用下面的打印:print“\ x1b [2J”

请参阅下面的工具链接: