it-swarm.com.de

Bildschirm in der Shell löschen

Nur eine kurze Frage:
Wie löscht man den Bildschirm in der Shell? Ich habe Wege gesehen wie:

import os
os.system('cls')

Dies öffnet nur das Windows-Cmd, löscht den Bildschirm und schließt aber Ich möchte, dass das Shell-Fenster gelöscht wird
(PS: Ich weiß nicht, dass das hilft, aber ich verwende Version 3.3.2 von Python)
Vielen Dank :)

57
josh

Unter OS X können Sie das Unterprozessmodul verwenden und von Shell aus "cls" aufrufen:

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

Um zu verhindern, dass "0" oben im Fenster angezeigt wird, ersetzen Sie die 2. Zeile durch:

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

Für Linux müssen Sie den Befehl cls durch clear ersetzen.

tmp = sp.call('clear',Shell=True)
35
GalHai

Was ist mit der Verknüpfung? CTRL+L?

Es funktioniert für alle Shells, z. Python, Bash, MySQL, MATLAB usw.

64
Shafiq
import os

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

Die Art von Dingen, die Sie suchen, finden Sie im Modul curses.

d.h.

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

Wichtige Notiz

Das Wichtigste, das Sie sich merken sollten, ist vor jedem Beenden, Sie müssen das Terminal in einen normalen Modus zurücksetzen, dies kann mit den folgenden Zeilen erfolgen:

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

Wenn Sie dies nicht tun, werden Sie seltsames Verhalten bekommen. Um sicherzustellen, dass dies immer gemacht wird, würde ich empfehlen, das Modul atexit zu verwenden, etwa:

import atexit

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

Werde das wohl gut machen.

10
Steve Barnes

click ist nicht nur eine rundum gute CLI-Bibliothek, sondern bietet auch eine plattformunabhängige Funktion clear() :

import click
click.clear()
6
Martin Valgur

Diese Funktion funktioniert unter allen Betriebssystemen (Unix, Linux, macOS und Windows)
Python 2 und Python

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 ist der Befehl cls, in Unix-ähnlichen Systemen ist der Befehl clear.
platform.system() gibt den Plattformnamen zurück. Ex. 'Darwin' Für macOS.
subprocess.call() führt einen Systemaufruf durch. Ex. subprocess.call(['ls','-l'])

5
ePi272314

mit windows 10 und pyhton3.5 Ich habe viele Codes getestet und nichts hat mir mehr geholfen als dieses:

Definieren Sie zunächst eine einfache Funktion. Diese Funktion druckt 50 Zeilenumbrüche (die Nummer 50 hängt von der Anzahl der Zeilen ab, die Sie auf Ihrem Bildschirm sehen können, sodass Sie diese Anzahl ändern können.)

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

dann rufen Sie es einfach so oft an, wie Sie möchten oder brauchen

cls()
4
sami.almasagedi

Hier sind einige Optionen, die Sie unter Windows verwenden können

Erste Wahl:

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

>>> cls()

Zweite Option:

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

>>> cls()

Dritte Option, wenn Sie sich im Python-Fenster REPL befinden:

Ctrl+L
4
Vlad Bezden

Wenn Sie ein Linux-Terminal für den Zugriff auf Python verwenden, ist cntrl + l die beste Lösung, um den Bildschirm zu löschen

3
HMS

Eine einfachere Möglichkeit, einen Bildschirm in Python zu löschen, ist die Verwendung von Ctrl + L obwohl es für die Shell sowie andere Programme funktioniert.

3
BioinfoNerd

Command+K funktioniert in OSX gut, um den Bildschirm zu löschen.

Shift+Command+K, um nur den Scrollback-Puffer zu löschen.

2
Ayer

os.system('cls') funktioniert gut, wenn ich sie öffne. Es wird im cmd-Stil geöffnet.

1
Phich

Mit dem Unterprozess können Sie "cls" für Shell aufrufen.

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

Das ist so einfach wie ich es schaffen kann. Ich hoffe es funktioniert für Sie! 

1
Seth Connell
import curses
stdscr = curses.initscr()
stdscr.clear()
1
sl1ng5h0t
  1. sie können Window oder Linux OS verwenden

    import os
    os.system('cls')
    os.system('clear')
    
  2. sie können ein Subprozess-Modul verwenden

    import subprocess as sp
    x=sp.call('cls',Shell=True)
    
1
Rohit Parghi

Ich verwende eine Klasse, die im Hintergrund nur eine der oben genannten Methoden verwendet ... Ich habe festgestellt, dass dies unter Windows und Linux funktioniert. Ich mag es zwar, weil es einfacher ist, clear () anstelle von system ('clear' ) oder os.system ('clear')

pip3 install clear-screen

from clear_screen import clear

und dann, wenn Sie die Shell löschen möchten:

clear()
0