像大多数Python开发人员一样,我通常打开一个控制台窗口,运行Python解释器来测试命令、dir()之类的东西、help()之类的东西,等等。
像任何控制台一样,在一段时间后,过去命令和打印的可见积压会变得混乱,并且在多次重新运行相同的命令时有时会令人困惑。我想知道是否以及如何清除Python解释器控制台。
我听说过做一个系统调用,或者在Windows上调用cls,或者在Linux上清除,但我希望有一些我可以命令解释器本身做的事情。
注意:我在Windows上运行,所以Ctrl+L不起作用。
我的方法是这样写一个函数:
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…所有的操作系统。
虽然这是一个较老的问题,但我认为我应该贡献一些东西,总结我认为最好的其他答案,并建议您将这些命令放入一个文件中,并设置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(其别名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