Sov*_*iut 299 python windows console clear
像大多数Python开发人员一样,我通常会打开一个控制台窗口,并运行Python解释器来测试命令,dir()内容help() stuff等.
像任何控制台一样,过了一段时间后,过去的命令和打印的可见积压变得混乱,有时在重新运行相同的命令几次时会感到困惑.我想知道是否以及如何清除Python解释器控制台.
我听说过要进行系统调用,要么cls在Windows clear上调用,要么在Linux 上调用,但我希望有一些东西可以命令解释器本身去做.
注意:我在Windows上运行,所以Ctrl+L不起作用.
Rya*_*eld 403
如您所述,您可以进行系统调用:
对于Windows
>>> import os
>>> clear = lambda: os.system('cls')
>>> clear()
对于Linux,lambda成为
>>> clear = lambda: os.system('clear')
pop*_*cnt 181
这里有一些方便的东西,更多的跨平台
import os
def cls():
    os.system('cls' if os.name=='nt' else 'clear')
# now, to clear the screen
cls()
Tri*_*ych 83
嗯,这是一个快速的黑客:
>>> 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
Den*_*lev 30
这是您可以做的最简单的事情,不需要任何额外的库。它将清除屏幕并返回>>>到左上角。
print("\033[H\033[J", end="")
其他参数end=""允许避免打印新行字符,并返回>>>到真正的顶部左上角。
mar*_*eau 27
尽管这是一个老问题,我想我会有所贡献总结什么,我认为是最好的其他答案,并通过建议你把这些命令(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
Vla*_*den 24
您可以通过多种方式在Windows上执行此操作:
Press CTRL + L
import os
cls = lambda: os.system('cls')
cls()
cls = lambda: print('\n'*100)
cls()
Ale*_*x K 21
毫无疑问,最快捷,最简单的方法是Ctrl+ L.
对于终端上的OS X,这是相同的.
小智 14
我这样做的方法就是写一个这样的函数:
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 ...所有操作系统.
Mar*_*mbo 10
完美的cls:
cls = lambda: print("\033c\033[3J", end='')
cls()
或者直接:
print("\033c\033[3J", end='')
刮水器很酷,它的好处是我不必在它周围输入'()'.这是一个细微的变化
# wiper.py
import os
class Cls(object):
    def __repr__(self):
        os.system('cls')
        return ''
用法很简单:
>>> cls = Cls()
>>> cls # this will clear console.
小智 8
我不确定 Windows 的“shell”是否支持这一点,但在 Linux 上:
print "\033[2J"
https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes
在我看来,cls用 with调用os通常是一个坏主意。想象一下,如果我设法更改您系统上的 cls 或 clear 命令,并且您以管理员或 root 身份运行脚本。
这是一个跨平台(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')
这是合并所有其他答案的最终解决方案.特征:
你可以随意使用它:
>>> 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()
| 归档时间: | 
 | 
| 查看次数: | 522179 次 | 
| 最近记录: |