How to clear the interpreter console?
像大多数Python开发人员一样,我通常会打开一个控制台窗口,让Python解释器运行来测试命令、
像任何控制台一样,一段时间后,过去的命令和打印的可见积压会变得杂乱无章,并且在多次重新运行同一命令时有时会令人困惑。我想知道是否以及如何清除Python解释器控制台。
我听说过做系统调用,或者在Windows上调用
注意:我在Windows上运行,所以
正如您提到的,您可以进行系统调用:
对于Windows
1 2 3 | >>> import os >>> clear = lambda: os.system('cls') >>> clear() |
对于Linux,lambda变成
1 | >>> clear = lambda: os.system('clear') |
这里有一些方便的东西,有点跨平台
1 2 3 4 5 6 7 | import os def cls(): os.system('cls' if os.name=='nt' else 'clear') # now, to clear the screen cls() |
好吧,这里有一个快速的黑客:
1 2 3 4 5 | >>> clear =" " * 100 >>> print clear >>> ...do some other stuff... >>> print clear |
或者,要保存一些键入内容,请将此文件放在python搜索路径中:
1 2 3 4 5 6 7 | # wiper.py class Wipe(object): def __repr__(self): return ' '*1000 wipe = Wipe() |
然后,您可以从解释器中按自己喜欢的方式执行此操作:)
1 2 3 4 | >>> from wiper import wipe >>> wipe >>> wipe >>> wipe |
虽然这是一个古老的问题,但我认为我会贡献一些东西来总结我认为其他答案中最好的,并通过建议您将这些命令放入一个文件中,并将pythonstartup环境变量设置为指向它来添加我自己的褶皱。因为我现在在窗户上,所以有点偏向这个方向,但很容易被其他方向倾斜。
以下是我发现的一些描述如何在Windows上设置环境变量的文章:
&何时使用sys.path.append以及何时修改%pythonpath%就足够了
&如何在Windows XP中管理环境变量
&配置系统和用户环境变量
&如何在Windows中使用全局系统环境变量
顺便说一句,即使文件中有空格,也不要在路径周围加引号。
无论如何,下面是我要放入(或添加到现有的)Python启动脚本的代码:
1 2 3 4 5 6 7 8 9 10 11 12 | # ==== 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 ==== |
顺便说一句,您还可以使用@triptych的
1 2 3 4 5 6 7 | class exit(object): exit = exit # original object def __repr__(self): self.exit() # call original return '' quit = exit = exit() |
最后,这里还有一些将主解释器提示从
1 2 3 4 5 6 7 8 9 | class Prompt: def __str__(self): import os return '%s >>> ' % os.getcwd() import sys sys.ps1 = Prompt() del sys del Prompt |
您可以在Windows上使用多种方法:
1。使用键盘快捷键:1 | Press CTRL + L |
2。使用系统调用方法:
1 2 3 | import os cls = lambda: os.system('cls') cls() |
三。使用新行打印100次:
1 2 3 | cls = lambda: print(' '*100) cls() |
毫无疑问,最快和最简单的方法是ctrl+l。
终端上的OS X也是如此。
我的方法是写一个这样的函数:
1 2 3 4 5 6 7 8 9 10 11 | 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(" ") * 120 |
然后调用
雨刷很酷,好的是我不用在它周围打"()"。这有点变化
1 2 3 4 5 6 | # wiper.py import os class Cls(object): def __repr__(self): os.system('cls') return '' |
使用非常简单:
1 2 | >>> cls = Cls() >>> cls # this will clear console. |
下面是一个跨平台(windows/linux/mac/可能还有其他可以在if-check中添加的版本)的版本片段,我结合了在这个问题中找到的信息:
1 2 3 | import os clear = lambda: os.system('cls' if os.name=='nt' else 'clear') clear() |
同样的想法,但是用一勺语法糖:
1 2 3 | import subprocess clear = lambda: subprocess.call('cls||clear', shell=True) clear() |
下面是合并所有其他答案的最终解决方案。特征:
您可以随意使用:
1 2 3 | >>> clear() >>> -clear >>> clear # <- but this will only work on a shell |
您可以将其作为模块导入:
1 2 | >>> from clear import clear >>> -clear |
您可以将其称为脚本:
1 | $ python clear.py |
它确实是多平台的;如果它不能识别你的系统(
您可以在这里下载[完整]文件:https://gist.github.com/3130325或者,如果您只是在寻找代码:
1 2 3 4 5 6 7 8 9 10 11 12 | 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(' '*120) def __neg__(self): self() def __repr__(self): self();return '' clear=clear() |
我使用iTerm和Mac OS的本地终端应用程序。
我只是按一下?+K
闲置使用。它有许多方便的特性。例如,ctrl+f6重置控制台。关闭和打开控制台是清除控制台的好方法。
对于python控制台内的mac用户,键入
1 2 | import os os.system('clear') |
对于Windows
1 | os.system('cls') |
我不确定Windows的"shell"是否支持这一点,但在Linux上:
https://en.wikipedia.org/wiki/ansi_escape_code_csi_codes
在我看来,用
Linux中的操作系统命令
1 2 3 4 5 | from os import popen with popen('clear') as f: clear = f.read() print clear |
在我的机器上,绳子是
这有两种很好的方法:
1。
1 2 3 4 5 6 7 8 9 | 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。
1 2 3 4 5 6 7 8 9 10 11 | import os def clear(): if os.name == 'posix': os.system('clear') elif os.name in ('ce', 'nt', 'dos'): os.system('cls') clear() |
这是您能做的最简单的事情,并且不需要任何额外的库。它将清除屏幕并将
1 | print("\033[H\033[J") |
我在WindowsXP和SP3上使用mingw/bash。
(把这个塞进去,皮托开始)#我的ctrl-l已经起作用了,但这可能对其他人有所帮助。#但在窗口底部留下提示…进口读出线readline.parse_and_bind('c-l:clear screen')
#这在bash中有效,因为我在.inputrc中也有,但是对于一些#当我进入python时它会掉下来的原因readline.parse_and_bind('c-y:kill whole line')
我再也受不了输入'exit()'了,对马蒂诺的/triptych的技巧很满意:
不过,我稍微修改了一下(把它塞进了.pythonstartup)
1 2 3 4 5 6 | class exxxit(): """Shortcut for exit() function, use 'x' now""" quit_now = exit # original object def __repr__(self): self.quit_now() # call original x = exxxit() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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 |
这个怎么样
1 | - os.system('cls') |
那是尽可能短的!
我不熟悉python(真的很新),在我正在阅读的一本书中,我了解了他们教我如何创建这个小函数的语言,以清除控制台中可见的积压和过去的命令和打印:
打开shell/创建新文档/创建函数,如下所示:
1 2 3 | def clear(): print(' ' * 50) |
将它保存在python目录的lib文件夹中(我的是c:python33lib)下次您需要清除控制台时,只需使用以下命令调用函数:
1 | clear() |
就是这样。附言:你可以随意命名你的函数。四、看到人们使用"雨刷"、"擦拭"等多种方式。
我正在使用Spyder(python 2.7)并清理我使用的解释器控制台
%清除
这将强制命令行转到顶部,我将看不到以前的旧命令。
或者单击控制台环境中的"选项",然后选择"重新启动内核",删除所有内容。
我发现最简单的方法就是关闭窗口并运行一个模块/脚本来重新打开shell。
如果是在Mac上,那么一个简单的
我可能会迟到,但这是一个很容易做到的方法
Type:
1 2 | def cls(): os.system("cls") |
所以,无论你想清除什么,只要输入你的代码就行了。
1 | cls() |
最好的办法!(学分:https://www.youtube.com/watch?annotation_id=annotation_3770292585&feature=iv&src_vid=bgukhmnvmb8&v=ltgep9c6z-u)
就用这个…
'*1000
编辑:我刚读过"Windows",这是给Linux用户的,对不起。
在巴什:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #!/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,然后运行:
1 | ./whatyouwant.sh python |
或者其他的东西,而不是python(空闲,无论什么)。这将询问您是否确实要退出,如果不退出,则会重新运行python(或作为参数提供的命令)。
这将清除所有、屏幕和所有在python中创建/导入的变量/对象/任何内容。
在python中,只需在要退出时键入exit()。
这应该是跨平台的,并且根据
1 2 3 4 5 6 7 8 9 10 11 | 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 |
1 | >>> ' '*80*25 |
更新:80x25不太可能是控制台窗口的大小,因此要获得真正的控制台尺寸,请使用寻呼机模块中的函数。python不提供与核心发行版类似的任何内容。
1 2 3 | >>> from pager import getheight >>> ' ' * getheight() |
好吧,这是一个技术性的答案,但我使用的是用于记事本++的python插件,结果表明,您只需右键单击它并单击"清除",就可以手动清除控制台。希望这能帮上忙!
上面提到了魔法字符串-我相信它们来自terminfo数据库:
http://www.google.com/?q=xαq=TeNFO
http://www.google.com/?q=x q=tput+command+in+unix
$tput清除OD-T x1Z0000000 1B 5B 48 1B 5B 32 4A>[H.[2J]<000000 7
刚刚进入
1 2 3 | import os os.system('cls') # Windows os.system('clear') # Linux, Unix, Mac OS X |
最简单的方法"导入"操作系统
clear = lambda: os.system('clear')
clear()`< /块引用>< /块引用>
一个简单的一行程序是:
# for windows name is nt
clear = lambda : os.system('cls' if os.name=='nt' else 'clear')
clear() 在Spyder中,当您想清除变量资源管理器中的所有变量时,只需在控制台中键入global().clear(),它们就会全部消失。