Clear screen in shell

…衆ロ難τιáo~ 提交于 2019-11-27 02:57:41
GalHai

For OS X, you can use subprocess module and call 'cls' from shell:

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

To prevent '0' from showing on top of the window, replace the 2nd line with:

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

For linux, you must replace cls command with clear

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

What about the shortcut CTRL+L?

It works for all shells e.g. Python, Bash, MySQL, MATLAB, etc.

import os

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

The sort of thing that you are looking for is to be found in the curses module.

i.e.

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

Important Note

The important thing to remember is before any exit, you need to reset the terminal to a normal mode, this can be done with the following lines:

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

If you don't you will get all sort of strange behaviour. To ensure that this is always done I would suggest using the atexit module, something like:

import atexit

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

Will probably do nicely.

Here are some options that you can use on Windows

First option:

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

>>> cls()

Second option:

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

>>> cls()

Third option if you are in Python REPL window:

Ctrl+L

In addition to being an all-around great CLI library, click also provides a platform-agnostic clear() function:

import click
click.clear()

using windows 10 and pyhton3.5 i have tested many codes and nothing helped me more than this:

First define a simple function, this funtion will print 50 newlines;(the number 50 will depend on how many lines you can see on your screen, so you can change this number)

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

then just call it as many times as you want or need

cls()

This function works in any OS (Unix, Linux, macOS, and Windows)
Python 2 and 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

In windows the command is cls, in unix-like systems the command is clear.
platform.system() returns the platform name. Ex. 'Darwin' for macOS.
subprocess.call() performs a system call. Ex. subprocess.call(['ls','-l'])

BioinfoNerd

An easier way to clear a screen while in python is to use Ctrl + L though it works for the shell as well as other programs.

If you are using linux terminal to access python, then cntrl+l is the best solution to clear screen

Command+K works fine in OSX to clear screen.

Shift+Command+K to clear only the scrollback buffer.

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

Subprocess allows you to call "cls" for Shell.

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

That's as simple as I can make it. Hope it works for you!

Rohit Parghi
  1. you can Use Window Or Linux Os

    import os
    os.system('cls')
    os.system('clear')
    
  2. you can use subprocess module

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

os.system('cls') works fine when I open them. It opens in cmd style.

I am using a class that just uses one of the above methods behind the scenes... I noticed it works on Windows and Linux... I like using it though because it's easier to type clear() instead of system('clear') or os.system('clear')

pip3 install clear-screen

from clear_screen import clear

and then when you want to clear the shell:

clear()
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!