当前位置:  开发笔记 > 编程语言 > 正文

如何清除解释器控制台?

如何解决《如何清除解释器控制台?》经验,为你挑选了12个好方法。

像大多数Python开发人员一样,我通常会打开一个控制台窗口,并运行Python解释器来测试命令,dir()内容help() stuff等.

像任何控制台一样,过了一段时间后,过去的命令和打印的可见积压变得混乱,有时在重新运行相同的命令几次时会感到困惑.我想知道是否以及如何清除Python解释器控制台.

我听说过要进行系统调用,要么cls在Windows clear上调用,要么在Linux 上调用,但我希望有一些东西可以命令解释器本身去做.

注意:我在Windows上运行,所以Ctrl+L不起作用.



1> Ryan Duffiel..:

如您所述,您可以进行系统调用:

对于Windows

>>> import os
>>> clear = lambda: os.system('cls')
>>> clear()

对于Linux,lambda成为

>>> clear = lambda: os.system('clear')


使用`def`有什么问题?当`def`更清晰时,为什么要使用`lambda`?
@Akbaribrahim as None将不打印试试这个:`clear = lambda:os.system('cls')或None`
在常规函数中定义它而不是lambda不应该显示'0',因为返回值将是None.
别忘了导入操作系统

2> popcnt..:

这里有一些方便的东西,更多的跨平台

import os

def cls():
    os.system('cls' if os.name=='nt' else 'clear')

# now, to clear the screen
cls()



3> Triptych..:

嗯,这是一个快速的黑客:

>>> 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


哈哈,这很有趣.不完全是我想要的,但很好的尝试.
尽管人们大笑,但是打印很多换行符正是外部过程"清晰"和"cls"所做的.这是_做的方法.(只是一个打印,或打印调用的功能,当然不指定"清除"字符串)
@Triptych:c ="\n"*100有用,+1为它.一个小注释它清除并带到shell的底部,我更喜欢从shell顶部开始.
@jsbueno不,不是.也许在Windows上(虽然我怀疑它,它有API来清除控制台).在所有其他系统上,`clear`输出一个清除屏幕的指令.没有废弃回滚缓冲区.在我的系统上,它输出这个控制序列:`\ 33 [3J\33 [H\33 [2J`.那就是:`[erase scrollback]``[reset cursor position]``[erase screen]`.使用`clear -x`可以省略`[erase scrollback]`.

4> martineau..:

尽管这是一个老问题,我想我会有所贡献总结什么,我认为是最好的其他答案,并通过建议你把这些命令(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



5> Vlad Bezden..:

您可以通过多种方式在Windows上执行此操作:

1.使用键盘快捷键:
Press CTRL + L
2.使用系统调用方法:
import os
cls = lambda: os.system('cls')
cls()
3.使用新行打印100次:
cls = lambda: print('\n'*100)
cls()


所有这些方式都非常...... naff.`cls`只能在windows上工作,让你的程序难以跨平台,打印100`newlines`只是...... eww?并且程序中不使用键盘快捷键.

6> Alex K..:

毫无疑问,最快捷,最简单的方法是Ctrl+ L.

对于终端上的OS X,这是相同的.


我在Windows 8.1上使用ctrl键使用大写或小写"L"尝试了此解决方案.它对我不起作用.我只是打开并关闭shell窗口以清除它.
是的,这是最简单的.我很惊讶没有人提到它.
在OS X上,Ctrl + L将填充终端,直到显示清除.您仍然可以向上滚动以查看历史记录.使用Cmd + K清除显示和打印输出历史记录.[更完整的OS X终端热键列表](https://github.com/0nn0/terminal-mac-cheatsheet)
在Ubuntu Desktop 16中为我精心工作

7> 小智..:

我这样做的方法就是写一个这样的函数:

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 ...所有操作系统.



8> Amol..:

刮水器很酷,它的好处是我不必在它周围输入'()'.这是一个细微的变化

# wiper.py
import os
class Cls(object):
    def __repr__(self):
        os.system('cls')
        return ''

用法很简单:

>>> cls = Cls()
>>> cls # this will clear console.


我把它命名为`class cls`.

9> Pitto..:

这是一个跨平台(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()



10> yubaraj poud..:

对于python控制台类型内的mac用户

import os
os.system('clear')

用于窗户

os.system('cls')



11> Alba Mendez..:

这是合并所有其他答案的最终解决方案.特征:

    您可以代码复制粘贴到shell或脚本中.

    你可以随意使用它:

    >>> clear()
    >>> -clear
    >>> clear  # <- but this will only work on a shell
    

    您可以其作为模块导入:

    >>> from clear import clear
    >>> -clear
    

    您可以其称为脚本:

    $ python clear.py
    

    这是真正的多平台 ; 如果它不能识别系统
    (ce,nt,dosposix)将回落到打印空白行.


你可以在这里下载[完整]文件: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()



12> Jorge E. Her..:

我使用iTerm和Mac OS的原生终端应用程序.

我只需按⌘+ k即可

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有