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 :)
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)
Was ist mit der Verknüpfung? CTRL+L?
Es funktioniert für alle Shells, z. Python, Bash, MySQL, MATLAB usw.
import os
os.system('cls') # For Windows
os.system('clear') # For Linux/OS X
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
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.
click
ist nicht nur eine rundum gute CLI-Bibliothek, sondern bietet auch eine plattformunabhängige Funktion clear()
:
import click
click.clear()
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'])
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()
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
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
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.
Command+K
funktioniert in OSX gut, um den Bildschirm zu löschen.
Shift+Command+K
, um nur den Scrollback-Puffer zu löschen.
os.system('cls')
funktioniert gut, wenn ich sie öffne. Es wird im cmd-Stil geöffnet.
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!
import curses
stdscr = curses.initscr()
stdscr.clear()
sie können Window oder Linux OS verwenden
import os
os.system('cls')
os.system('clear')
sie können ein Subprozess-Modul verwenden
import subprocess as sp
x=sp.call('cls',Shell=True)
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()