在shell中清除屏幕

时间:2013-09-21 20:05:50

标签: python shell screen clear

一个简单的问题:
如何清除外壳中的屏幕? 我见过这样的方式:

import os
os.system('cls')

这只是打开窗口cmd,清除屏幕然后关闭 我希望清除shell窗口 (PS:我不知道这有帮助,但我使用的是3.3.2版本的Python) 谢谢:))

20 个答案:

答案 0 :(得分:64)

快捷方式 CTRL + L 怎么样?

适用于所有贝壳,例如Python,Bash,MySQL,MATLAB等

答案 1 :(得分:44)

import os

os.system('cls')  # For Windows
os.system('clear')  # For Linux/OS X

答案 2 :(得分:39)

对于OS X,您可以使用子进程模块并从shell调用'cls':

import subprocess as sp
sp.call('cls',shell=True)

要防止在窗口顶部显示“0”,请将第二行替换为:

tmp = sp.call('cls',shell=True)

对于linux,您必须将cls命令替换为clear

tmp = sp.call('clear',shell=True)

答案 3 :(得分:11)

您正在寻找的东西可以在curses模块中找到。

import curses  # Get the module
stdscr = curses.initscr()  # initialise it
stdscr.clear()  # Clear the screen

重要提示

要记住的重要事项是在任何退出之前,您需要将终端重置为正常模式,这可以通过以下几行完成:

curses.nocbreak()
stdscr.keypad(0)
curses.echo()
curses.endwin()

如果你不这样做,你会得到各种奇怪的行为。为了确保始终如此,我建议使用atexit模块,例如:

import atexit

@atexit.register
def goodbye():
    """ Reset terminal from curses mode on exit """
    curses.nocbreak()
    if stdscr:
        stdscr.keypad(0)
    curses.echo()
    curses.endwin()

可能做得很好。

答案 4 :(得分:7)

除了是一个全面的优秀CLI库之外,click还提供了与平台无关的clear()功能:

import click
click.clear()

答案 5 :(得分:4)

此功能适用于任何操作系统(Unix,Linux,macOS和Windows)
Python 2和Python 3

import platform    # For getting the operating system name
import subprocess  # For executing a shell command

def clear_screen():
    """
    Clears the terminal screen.
    """

    # Clear command as function of OS
    command = "cls" if platform.system().lower()=="windows" else "clear"

    # Action
    return subprocess.call(command) == 0

在Windows中,命令为cls,在类似unix的系统中,命令为clear
platform.system()返回平台名称。防爆。对于macOS,'Darwin' subprocess.call()执行系统调用。防爆。 subprocess.call(['ls','-l'])

答案 6 :(得分:4)

使用 Windows 10 pyhton3.5 我测试了很多代码,没有什么比这更能帮助我了:

首先定义一个简单的功能,此功能将打印50个换行符;(数字50将取决于您在屏幕上可以看到多少行,因此您可以更改此数字)

def cls(): print ("\n" * 50)

然后根据需要多次调用

cls()

答案 7 :(得分:4)

以下是一些可在Windows上使用的选项

第一个选项:

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

>>> cls()

第二个选项:

cls = lambda: print('\n' * 100)

>>> cls()

如果您在Python REPL窗口中,则为第三个选项:

Ctrl+L

答案 8 :(得分:3)

在python中清除屏幕的一种更简单的方法是使用 Ctrl + L 虽然它适用于shell以及其他程序。

答案 9 :(得分:3)

如果你使用linux终端来访问python,那么cntrl + l是清除屏幕的最佳解决方案

答案 10 :(得分:2)

Command+K在OSX中可以正常工作以清除屏幕。

Shift+Command+K仅清除回滚缓冲区。

答案 11 :(得分:1)

import curses
stdscr = curses.initscr()
stdscr.clear()

答案 12 :(得分:1)

当我打开它们时,

os.system('cls')工作正常。它以cmd风格打开。

答案 13 :(得分:1)

  1. 您可以使用Window或Linux Os

    import os
    os.system('cls')
    os.system('clear')
    
  2. 您可以使用子流程模块

    import subprocess as sp
    x=sp.call('cls',shell=True)
    

答案 14 :(得分:1)

子流程允许您调用" cls"为壳牌。

import subprocess
cls = subprocess.call('cls',shell=True)

这就像我能做到的那么简单。希望这对你有用!

答案 15 :(得分:0)

我正在使用仅在幕后使用上述方法之一的类...我注意到它可以在Windows和Linux上运行...我喜欢使用它,因为键入clear()而不是system( 'clear')或os.system('clear')

pip3 install clear-screen

from clear_screen import clear

,然后在要清除外壳时:

clear()

答案 16 :(得分:0)

这里是制作自己的clsclear命令的方法,这些命令无需显式调用任何函数即可工作!

我们将利用python控制台调用repr()在屏幕上显示对象这一事实。如果您有自己的自定义python shell(例如,带有-i选项)并且有一个预加载脚本,则此功能特别有用。这就是您需要的:

import os
class ScreenCleaner:
    def __repr__(self):
        os.system('cls')  # This actually clears the screen
        return ''  # Because that's what repr() likes

cls = ScreenCleaner()

如果您使用的是Linux(同时使用clear命令和变量名),请使用cls而不是os

现在,如果您只在控制台中编写clsclear-它会清除它!甚至没有cls()clear()-仅仅是原始变量。这是因为python将调用repr(cls)将其打印出来,这又将触发我们的__repr__函数。

让我们对其进行测试:

>>> df;sag
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'df' is not defined
>>> sglknas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'sglknas' is not defined
>>> lksnldn
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'lksnldn' is not defined
>>> cls

屏幕清晰!

要澄清-上面的代码需要像这样在控制台中导入

from somefile import cls

或直接使用以下内容进行预加载:

python -i my_pre_loaded_classes.py

答案 17 :(得分:0)

那是最好的方法:

>>>import os
>>>def cls(): os.system('cls')
>>>cls()

答案 18 :(得分:0)

对于Python IDLE 3.8.1,您可以重新启动Shell

CTRL + F6

在菜单上单击“外壳”菜单。 然后单击“重新启动外壳程序”选项。

答案 19 :(得分:-1)

您可以简单地使用(在Linux / macOS上)使用,而不是导入所有的curses或掏空只是为了获得一个控制角色而已:

print(chr(12)) # sends Ctrl-L