像大多数Python开发人员一样,我通常会打开一个控制台窗口,并运行Python解释器来测试命令,dir()
内容help() stuff
等.
像任何控制台一样,过了一段时间后,过去的命令和打印的可见积压变得混乱,有时在重新运行相同的命令几次时会感到困惑.我想知道是否以及如何清除Python解释器控制台.
我听说过要进行系统调用,要么cls
在Windows clear
上调用,要么在Linux 上调用,但我希望有一些东西可以命令解释器本身去做.
注意:我在Windows上运行,所以Ctrl+L
不起作用.
如您所述,您可以进行系统调用:
对于Windows
>>> import os >>> clear = lambda: os.system('cls') >>> clear()
对于Linux,lambda成为
>>> clear = lambda: os.system('clear')
这里有一些方便的东西,更多的跨平台
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
尽管这是一个老问题,我想我会有所贡献总结什么,我认为是最好的其他答案,并通过建议你把这些命令(S)到一个文件中添加自己的皱纹和设置您的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 ====
顺便说一下,你也可以使用@Triptych的 __repr__
诀窍exit()
改成just exit
(和别名的ditto 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
您可以通过多种方式在Windows上执行此操作:
1.使用键盘快捷键:Press CTRL + L2.使用系统调用方法:
import os cls = lambda: os.system('cls') cls()3.使用新行打印100次:
cls = lambda: print('\n'*100) cls()
毫无疑问,最快捷,最简单的方法是Ctrl+ L.
对于终端上的OS X,这是相同的.
我这样做的方法就是写一个这样的函数:
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.
这是一个跨平台(Windows/Linux/Mac /可能是你可以在if检查中添加的其他版本)版本片段,我结合了这个问题中的信息:
import os clear = lambda: os.system('cls' if os.name=='nt' else 'clear') clear()
同样的想法,但用一把语法糖:
import subprocess clear = lambda: subprocess.call('cls||clear', shell=True) clear()
对于python控制台类型内的mac用户
import os os.system('clear')
用于窗户
os.system('cls')
这是合并所有其他答案的最终解决方案.特征:
您可以将代码复制粘贴到shell或脚本中.
你可以随意使用它:
>>> clear() >>> -clear >>> clear # <- but this will only work on a shell
您可以将其作为模块导入:
>>> from clear import clear >>> -clear
您可以将其称为脚本:
$ python clear.py
这是真正的多平台 ; 如果它不能识别系统
(ce
,nt
,dos
或posix
)将回落到打印空白行.
你可以在这里下载[完整]文件: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()
我使用iTerm和Mac OS的原生终端应用程序.
我只需按⌘+ k即可