像大多数Python开发人员一样,我通常打开一个控制台窗口,运行Python解释器来测试命令、dir()之类的东西、help()之类的东西,等等。
像任何控制台一样,在一段时间后,过去命令和打印的可见积压会变得混乱,并且在多次重新运行相同的命令时有时会令人困惑。我想知道是否以及如何清除Python解释器控制台。
我听说过做一个系统调用,或者在Windows上调用cls,或者在Linux上清除,但我希望有一些我可以命令解释器本身做的事情。
注意:我在Windows上运行,所以Ctrl+L不起作用。
完美的cls,也兼容Python2(在.pythonrc文件中):
from __future__ import print_function
cls = lambda: print("\033c", end='')
并且可以通过如下方式从终端调用:
cls()
或直接:
print("\033c", end='')
\033[H\033] J只清除可见屏幕,与Ubuntu 18.10之前的清除命令完全相同。它不清除滚动缓冲区。向上滚动将显示历史。
为了模拟这种行为,插入一些终端行,然后按Ctrl+L并插入更多。执行打印("\033[H\033[J", end="")后,只会删除按"Ctrl + L"后插入的屏幕行。
\033c清除一切。
\x1bc可能不会给出与\033c相同的结果,因为十六进制转义没有明确的长度限制。
这里有一个最终的解决方案,它融合了所有其他的答案。特点:
您可以将代码复制粘贴到shell或脚本中。
你可以随心所欲地使用它:
> > > clear ()
> > >明确
>>> clear # <-但这只适用于shell
你可以把它作为一个模块导入:
>>> from clear import 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()