Solo una pregunta rápida:
¿Cómo borras la pantalla en shell? He visto formas como:
import os
os.system('cls')
Esto solo abre el cmd de Windows, borra la pantalla y se cierra, pero quiero que se borre la ventana del shell
(PD: no sé que esto ayude, pero estoy usando la versión 3.3.2 de Python)
Gracias :)
Respuestas:
Para macOS / OS X, puede usar el módulo de subproceso y llamar a 'cls' desde el shell:
import subprocess as sp sp.call('cls', shell=True)
Para evitar que se muestre '0' en la parte superior de la ventana, reemplace la segunda línea con:
tmp = sp.call('cls', shell=True)
Para Linux, debe reemplazar el
cls
comando conclear
tmp = sp.call('clear', shell=True)
fuente
import subprocess as sp sp.call('clear',shell=True)
que funciona, excepto que hay un0
en la parte superior de la ventana del terminal.ctrl+L
sp.call('cls', shell=True);
¿Qué pasa con el atajo CTRL+ L?
Funciona para todos los shells, por ejemplo, Python, Bash, MySQL, MATLAB, etc.
fuente
import os os.system('cls') # For Windows os.system('clear') # For Linux/OS X
fuente
os.system('clear')
para terminales Mac OS X (confirmado que funciona con el shell predeterminadobash
, y también paracsh
).El tipo de cosas que estás buscando se encuentra en el módulo de curses.
es decir
import curses # Get the module stdscr = curses.initscr() # initialise it stdscr.clear() # Clear the screen
Nota IMPORTANTE
Lo importante a recordar es que antes de cualquier salida, es necesario restablecer el terminal a un modo normal, esto se puede hacer con las siguientes líneas:
curses.nocbreak() stdscr.keypad(0) curses.echo() curses.endwin()
Si no lo hace, obtendrá todo tipo de comportamiento extraño. Para asegurar que esto siempre se haga, sugeriría usar el módulo atexit, algo como:
import atexit @atexit.register def goodbye(): """ Reset terminal from curses mode on exit """ curses.nocbreak() if stdscr: stdscr.keypad(0) curses.echo() curses.endwin()
Probablemente le irá bien.
fuente
stdscr = curses.initscr()
funciona para limpiar la pantalla ystdscr.clear()
no hace nada. Al usar Python3.4,stdscr = curses.initscr()
borra la pantalla, pero elimina la capacidad del terminal para procesar nuevas líneas. Cuando presiono enter repetidamente, aparece lo siguiente:>>> >>> >>> >>>
y así sucesivamente. Todavía puedo escribir comandos, pero no aparecen. Además, este comportamiento persiste incluso cuando utilizoexit()
Python. ¡EVITE SU USO!curses
módulo pueda tener problemas de compatibilidad (Windows, Mac, Linux)? Puedo confirmar que este problema ocurre en dos terminales Mac diferentes, al menos. El comportamiento persiste en BASH pero no en CSH. Hmm ... ¿Crees que debería contactar al desarrollador de curses, al desarrollador de shell, o simplemente preguntarle a la comunidad SO? ¡Gracias de nuevo!Aquí hay algunas opciones que puede usar en Windows
Primera opción:
import os cls = lambda: os.system('cls') >>> cls()
Segunda opción:
cls = lambda: print('\n' * 100) >>> cls()
Tercera opción si está en la ventana REPL de Python:
fuente
Además de ser una gran biblioteca CLI versátil,
click
también proporciona unaclear()
función independiente de la plataforma :import click click.clear()
fuente
Esta función funciona en cualquier sistema operativo (Unix, Linux, macOS y Windows)
Python 2 y 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
En Windows, el comando es
cls
, en sistemas tipo Unix, el comando esclear
.platform.system()
devuelve el nombre de la plataforma. Ex.'Darwin'
para macOS.subprocess.call()
realiza una llamada al sistema. Ex.subprocess.call(['ls','-l'])
fuente
Una forma más fácil de borrar una pantalla mientras está en Python es usar Ctrl+ Launque funciona tanto para el shell como para otros programas.
fuente
Si está utilizando la terminal de Linux para acceder a Python, entonces cntrl + l es la mejor solución para borrar la pantalla
fuente
Estoy usando una clase que solo usa uno de los métodos anteriores entre bastidores ... noté que funciona en Windows y Linux ... aunque me gusta usarlo porque es más fácil escribir clear () en lugar de system ('clear' ) o os.system ('borrar')
pip3 install clear-screen from clear_screen import clear
y luego, cuando quieras borrar el caparazón:
clear()
fuente
usando Windows 10 y Pyhton3.5 he probado muchos códigos y nada me ayudó más que esto:
Primero defina una función simple, esta función imprimirá 50 nuevas líneas; (el número 50 dependerá de cuántas líneas pueda ver en su pantalla, por lo que puede cambiar este número)
def cls(): print ("\n" * 50)
entonces llámalo tantas veces como quieras o necesites
cls()
fuente
Command+K
funciona bien en OSX para borrar la pantalla.Shift+Command+K
para borrar solo el búfer de retroceso.fuente
import curses stdscr = curses.initscr() stdscr.clear()
fuente
El subproceso le permite llamar a "cls" para Shell.
import subprocess cls = subprocess.call('cls',shell=True)
Eso es tan simple como puedo hacerlo. ¡Espero que funcione para ti!
fuente
puedes usar Windows o Linux OS
import os os.system('cls') os.system('clear')
puedes usar el módulo de subproceso
import subprocess as sp x=sp.call('cls',shell=True)
fuente
os.system('cls')
funciona bien cuando los abro. Se abre en estilo cmd.fuente
En lugar de importar todas las maldiciones o desembolsar solo para obtener un carácter de control, simplemente puede usar (en Linux / macOS):
print(chr(27) + "[2J")
(Fuente: Borrar terminal en Python )
fuente
Aquí le mostramos cómo hacer su propio
cls
oclear
de comando que el trabajo sin llamar explícitamente cualquier función!Aprovecharemos el hecho de que la consola de Python llama
repr()
para mostrar objetos en la pantalla. Esto es especialmente útil si tiene su propio shell de python personalizado (con la-i
opción, por ejemplo) y tiene un script de precarga para él. Esto es lo que necesitas:import os class ScreenCleaner: def __repr__(self): os.system('cls') # This actually clears the screen return '' # Because that's what repr() likes cls = ScreenCleaner()
¡Úselo en
clear
lugar decls
si está en Linux (tanto en elos
comando como en el nombre de la variable)!Ahora, si solo escribe
cls
oclear
en la consola, ¡se borrará! Ni siquieracls()
oclear()
, solo la variable bruta. Esto se debe a que Python llamarárepr(cls)
para imprimirlo, lo que a su vez activará nuestro__repr__
función.Probémoslo:
>>> 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
¡Y la pantalla está clara!
Para aclarar, el código anterior debe importarse en la consola de esta manera
from somefile import cls
O precargue directamente con algo como:
python -i my_pre_loaded_classes.py
fuente
Esa es la mejor forma:
>>>import os >>>def cls(): os.system('cls') >>>cls()
fuente
Para Python IDLE 3.8.1 puede reiniciar el Shell
CTRL + F6
En el menú Haga clic en el menú Shell. Luego haga clic en la opción Reiniciar Shell.
fuente