the - python os system('' cls '') not working
Borrar pantalla en shell (15)
Sólo una pregunta rápida:
¿Cómo se borra 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 de shell
(PD: No sé que esto ayude, pero estoy usando la versión 3.3.2 de Python)
Gracias :)
puedes usar Window 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)
¿Qué pasa con el acceso directo CTRL + L ?
Funciona para todos los shells, por ejemplo, Python, Bash, MySQL, MATLAB, etc.
Además de ser una excelente biblioteca CLI completa, el click
también proporciona una función clear()
plataforma:
import click
click.clear()
Aquí hay algunas opciones que puedes 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ás en la ventana de Python REPL:
Ctrl+L
El tipo de cosa que está 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, debe 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 haces, obtendrás todo tipo de comportamiento extraño. Para asegurarse de que esto se haga siempre, 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 lo hará bien.
Para OS X, puede usar el módulo de subproceso y llamar ''cls'' desde el shell:
import subprocess as sp
sp.call(''cls'',shell=True)
Para evitar que aparezca ''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 comando cls
con clear
tmp = sp.call(''clear'',shell=True)
Si está utilizando el terminal de Linux para acceder a python, entonces cntrl + l es la mejor solución para borrar la pantalla
Subproceso le permite llamar "cls" para Shell.
import subprocess
cls = subprocess.call(''cls'',shell=True)
Eso es tan simple como puedo hacerlo. ¡Espero que funcione para ti!
Una forma más fácil de borrar una pantalla mientras está en python es usar Ctrl + L, aunque funciona para el shell y para otros programas.
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 líneas nuevas (el número 50 dependerá de cuántas líneas pueda ver en su pantalla, para que pueda cambiar este número)
def cls(): print ("/n" * 50)
Entonces simplemente llámalo tantas veces como quieras o necesites.
cls()
Command+K
funciona bien en OSX para borrar la pantalla.
Shift+Command+K
para borrar solo el búfer de retroceso.
os.system(''cls'')
funciona bien cuando los abro. Se abre en estilo cmd.
Esta función funciona en cualquier sistema operativo (Unix, Linux, OS X y Windows)
Python 2 y Python 3
from platform import system as system_name # Returns the system/OS name
from os import system as system_call # Execute a shell command
def clear_screen():
"""
Clears the terminal screen.
"""
# Clear command as function of OS
command = "-cls" if system_name().lower()=="windows" else "clear"
# Action
system_call(command)
En Windows, el comando es cls
, en los sistemas similares a Unix el comando es clear
.
platform.system()
devuelve el nombre de la plataforma. Ex. ''Darwin''
en OS X.
os.system()
realiza una llamada al sistema. Ex. os.system(''ls -al'')
import curses
stdscr = curses.initscr()
stdscr.clear()
import os
os.system(''cls'') # For Windows
os.system(''clear'') # For Linux/OS X