如何清除解释器控制台?
像大多数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.
这是合并所有其他答案的权威解决方案 。 特征:
- 您可以将代码复制粘贴到您的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()
使用空闲。 它有许多方便的功能。 例如, 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() ,它们将全部消失。