¿Alguna forma de borrar la ventana IDLE de Python?

154

Sé que hay un tema similar sobre la consola de Python, pero no sé si son lo mismo. Probé el sistema ("claro") y no funcionó aquí.

¿Cómo borro la ventana IDLE de Python?

elysium devorado
fuente
10
No es un duplicado, OP está preguntando cómo cáscara IDLE clara, no consolar
Moha el camello omnipotente
1
La razón por la que esto no funciona es porque Python inicia una nueva sesión de shell y ejecuta el comando clearallí. También explica por qué cdno funciona system.os.
jkd
14
Mantenga presionado ctrl + jpor un tiempo y luego presione enter, esa será la mejor manera
ytpillai
1
@ytpillai, Ah, pero eso me da el aviso en la parte inferior. Una solución, sin duda, pero aún causa cierta conveniencia.
John Red

Respuestas:

97

Los "cls" y "clear" son comandos que borrarán un terminal (es decir, un indicador de DOS o ventana de terminal). Desde su captura de pantalla, está utilizando el shell dentro de IDLE, que no se verá afectado por tales cosas. Desafortunadamente, no creo que haya una manera de borrar la pantalla en IDLE. Lo mejor que puede hacer es desplazar la pantalla hacia abajo por muchas líneas, por ejemplo:

print "\n" * 100

Aunque podrías poner esto en una función:

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

Y luego llámalo cuando sea necesario como cls()

Brian
fuente
13
Sí borra la pantalla, pero aún aparece el mensaje ">>>" en la última línea en lugar de en la parte superior, lo que supongo que hace que sea menos ineficiente ... aún +1 para pantalla clara
Invictus
10
Python 3.4.2 - Tuve que encerrar "\ n" y * 100 entre paréntesis, entonces:print ("\n" * 100)
cody.codes
44
Esto no borrará la pantalla, ¡todavía puedo desplazarme hacia arriba!
esoterik
2
ctrl + jTambién funciona. Podría ser útil, incluido eso. stackoverflow.com/a/11993793/4871483
ytpillai
1
Tenga en cuenta que esta es la etiqueta de Python. Versión no específica. Para todos los usuarios de python 3.x esprint('\n'*100)
Luke
83

os.system('clear')Funciona en Linux. Si está ejecutando Windows intente en su os.system('CLS')lugar.

Primero debe importar el sistema operativo de esta manera:

import os
Nadia Alramli
fuente
13
El sistema os. ('CLS') funciona en Windows. (Python 2.6) La pantalla resultante se borra, solo muestra un "0", que supongo es el valor de retorno para CLS, en la parte superior. La siguiente línea tiene el indicador >>>.
mjv
35
esto hace una llamada del sistema operativo a cls en un símbolo del sistema externo y no interactúa con inactivo
bunglestink
15
inactivo no es una ventana de consola. Tanto clear como cls funcionan en ventanas de consola / terminal.
Bryan Oakley
16
La pregunta es 'pantalla clara EN INACTIVO' los métodos anteriores ciertamente no funcionan en mi computadora
Élektra
21
¿Por qué se vota esto? Esto abrirá un nuevo símbolo del sistema, lo borrará y lo cerrará
ytpillai
39

La mayoría de las respuestas, aquí borran la pantalla del indicador de DOS, con comandos de borrado, que no es la pregunta. Otras respuestas aquí fueron imprimir líneas en blanco para mostrar un efecto de limpieza de la pantalla.

La respuesta más simple de esta pregunta es

No es posible borrar el shell IDLE de Python sin alguna integración de módulo externo. Si realmente desea obtener un shell fresco puro en blanco, simplemente cierre el shell anterior y ejecútelo nuevamente

Abdul Rehman
fuente
3
Esta es una respuesta buena, directa y práctica a esta pregunta; cierre inactivo, deje el archivo abierto, vuelva a ejecutar el archivo e inactivo ahora tiene una pantalla nueva.
Mike_K
@Mike_K, puede ser útil, pero nunca. En este momento tengo una pantalla dividida (un libro <|> inactivo). Cuando vuelvo a ejecutar el modo inactivo, la nueva pantalla aparece en la posición / dimensiones predeterminadas. Entonces, se volverá muy aburrido.
sdlins
38

ctrl+ Lborra la pantalla en Ubuntu Linux.

shxfee
fuente
También en Red Hat / Fedora / CentOS
DtechNet
1
En Windows también, si usa IDLEx. ¡Salud! ¡Tan feliz de haber obtenido finalmente una solución simple!
John Red
No funciona en Ubuntu 18.04. Lo menos peor aquí es usar CTRL+ Jvarias veces.
sdlins
@slinstj que lo cerró por completo en Windows
Mubarek
Añadido a mi truco de hoy! ¡También funciona como un encanto en MacOS!
xtornasol512
21

Se puede encontrar una extensión para borrar el shell en Issue6143 como una "solicitud de función". Esta extensión está incluida con IdleX .

Roger
fuente
1
Esta es una extensión brillante para Python Idle. Muchas gracias!
Indrajit
19
>>> import os

>>>def cls():
...    os.system("clear")
...
>>>cls()

Eso hace es perfectamente. No '0' impreso tampoco.

Derk Smith
fuente
Agradable, simple, hace lo que dice. O import ossimplemente escriba, os.system("clear")aunque la función es útil si a menudo necesita borrar la pantalla.
Dave Everitt
1
os.system ("clear") funcionó. Esto funciona para mí, pero tengo que escribir "cls ()"
j0h
Cuando intenté esto, la línea de comando devolvió <function cls en 0x024D25D0> y la consola no se
borró
La mejor respuesta hasta ahora
hello123
@ericgrosse necesita escribir cls (), no cls
Banoona
9

No parece haber una manera de borrar el búfer 'shell' IDLE.

Mark Ribau
fuente
1
bugs.python.org/issue6143 tiene una extensión para borrar el shell y se incluye con IdleX.
Roger
7

La forma de ejecutar comandos en Python 2.4+ es usar el módulo de subproceso . Puede usarlo de la misma manera que lo hace os.system.

import subprocess
subprocess.call("clear") # linux/mac
subprocess.call("cls", shell=True) # windows

Si está ejecutando esto en la consola de Python, deberá hacer algo para ocultar el valor de retorno (para cualquiera os.systemo subprocess.call), como asignarlo a una variable:

cls = subprocess.call("cls", shell=True)
Rudd Zwolinski
fuente
Rastreo (última llamada más reciente): Archivo "<pyshell # 1>", línea 1, en <module> subprocess.call ("cls") Archivo "C: \ Python26 \ lib \ subprocess.py", línea 444, en devolución de llamada Popen (* popenargs, ** kwargs) .wait () Archivo "C: \ Python26 \ lib \ subprocess.py", línea 595, en init errread, errwrite) Archivo "C: \ Python26 \ lib \ subprocess.py ", línea 804, en _execute_child startupinfo) WindowsError: [Error 2] El sistema no puede encontrar el archivo especificado
elysium devorado
1
Hmm .. Eso es lo que obtengo por no usar Windows y por lo tanto no poder probarlo. Pruebe subprocess.call ("cls", shell = True)
Rudd Zwolinski
5

Me gusta usar:

import os
clear = lambda : os.system('cls') # or clear for Linux

clear()
lfsando
fuente
Parece que esa respuesta ya se ha proporcionado
OneCricketeer
4

Archivo -> Nueva ventana

En la nueva ventana **

Ejecutar -> Python Shell

El problema con este método es que borrará todas las cosas que definió, como las variables.

Alternativamente, debería usar el símbolo del sistema.

abrir símbolo del sistema

escriba "cd c: \ python27"

escriba "python example.py", tiene que editar esto usando IDLE cuando no está en modo interactivo. Si estás en Python Shell, archivo -> nueva ventana.

Tenga en cuenta que example.py debe estar en el mismo directorio que C: \ python27, o en cualquier directorio que tenga instalado Python.

Luego, desde aquí, simplemente presione la tecla de flecha ARRIBA en su teclado. Simplemente edite example.py, use CTRL + S, luego regrese al símbolo del sistema, presione la tecla de flecha ARRIBA, presione enter.

Si el símbolo del sistema se llena demasiado, simplemente escriba "clr"

El comando "clr" solo funciona con el símbolo del sistema, no funcionará con IDLE.

cobarde anónimo
fuente
3
Solo digo, pero creo que la pregunta es '¿Cómo se borra la pantalla EN INACTIVO DESDE EL GUIÓN DE PYTHON?
Élektra
Comenzar un nuevo archivo y ejecutar Python shell en él parecía ser la única opción disponible para mí, nada más funcionó. ¡Gracias!
Sergey Zakharov
4

Parece que no hay una forma directa de borrar la consola IDLE.

Una forma de hacerlo es usar exit () como el último comando en mi script de Python (.py). Cuando ejecuto el script, siempre abre una nueva consola y un mensaje antes de salir.

Upside: la consola se inicia de nuevo cada vez que se ejecuta el script. Desventaja: la consola se inicia de nuevo cada vez que se ejecuta el script.

Sandeep Gaadhe
fuente
2

Puede hacer un script de AutoHotKey .

Para configurar ctrl-r en una tecla de acceso rápido para borrar el shell:

^r::SendInput print '\n' * 50 {Enter}

Simplemente instale AutoHotKey, coloque lo anterior en un archivo llamado idle_clear.ahk, ejecute el archivo y su tecla de acceso rápido estará activa.

Desaliñado
fuente
2

Ninguna de estas soluciones me funcionó en Windows 7 y en IDLE. Terminó usando PowerShell, ejecutando Python dentro de él y saliendo para llamar "cls" en PowerShell para borrar la ventana.

CONTRAS: Asume que Python ya está en la variable PATH. Además, esto borra las variables de Python (aunque también lo hace al reiniciar el shell).

PROS: conserva cualquier personalización de ventana que haya realizado (color, tamaño de fuente).

Draghon
fuente
2

Parece que es imposible hacerlo sin ninguna biblioteca externa.

Una forma alternativa si está utilizando Windows y no desea abrir y cerrar el shell cada vez que desea borrarlo es mediante el símbolo del sistema de Windows.

  • Escriba pythony presione Intro para activar el símbolo del sistema de Windows en Python inactivo (asegúrese de que Python esté instalado).

  • Escriba quit()y presione Intro para volver al símbolo del sistema de Windows.

  • Escriba clsy presione Intro para borrar el símbolo del sistema / shell de Windows.

Ari
fuente
2

Te recomendaría usar Thonny IDE para Python. Su shell tiene la opción "Clear Shell" y también puede rastrear variables creadas en una lista separada. Su depuración es muy buena incluso en comparación con los IDE modernos. También puede escribir código en un archivo python junto con acceso a shell en el mismo lugar.

Y es ligero!

Zaheer
fuente
2

" comando + L " para MAC OS X.

" control + L " para Ubuntu

Borra la última línea de la sesión interactiva.

Darshan NS
fuente
No sabía sobre esta característica, gracias. Siempre escribe lo que hace tu comando.
Priyank Pathak
1

Como dijo mark.ribau, parece que no hay forma de borrar el widget de texto en inactivo. Se debe editar el EditorWindow.pymódulo y agregar un método y un elemento de menú en la clase EditorWindow que haga algo como:

self.text.tag_remove("sel", "1.0", "end")
self.text.delete("1.0", "end")

y quizás algo más de gestión de etiquetas de lo que no estoy al tanto.

tzot
fuente
1

La mejor manera de hacerlo en Windows es usar el símbolo del sistema 'cmd' y acceder al directorio de Python. El símbolo del sistema se puede encontrar en el menú de inicio> ejecutar> cmd

C:\>cd Python27
C:\Python27>python.exe
Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>import os
>>>os.system('cls')  #This will clear the screen and return the value 0
Al-Ani
fuente
2
Solo digo, pero creo que la pregunta es "¿Cómo se borra la pantalla EN INACTIVO"? (Énfasis en IN IDLE)
Élektra
1

utilizar este

for num in range(1,100):
    print("\n")
Tauseef
fuente
Funciona, pero terminas con una distancia de desplazamiento increíblemente larga si quieres ver algo de antes.
Élektra
Trate de reducir el rango (1,10):
Tauseef
@Xenon Pero si la idea es limpiar la ventana, entonces el usuario no debería poder ver algo de antes.
Sam
0

Su captura de pantalla muestra que está usando IDLE. cls/ clearNo va a funcionar para usted.

orip
fuente
55
Esa no es una buena respuesta; OP no pidió "qué NO me ayudará a borrar la ventana IDLE de Python".
DeFazer
-1
from subprocess import call as c

def cls():

    c("cls",shell=True)

print([x for x in range(10000)])

cls()

Siempre que desee borrar la consola, llame a la función cls, pero tenga en cuenta que esta función borrará la pantalla en Windows solo si está ejecutando Python Script usando cmd prompt, no borrará el búfer si está ejecutando IDLE.

Akash Rana
fuente
2
Solo digo, pero creo que la pregunta es '¿Cómo se borra la pantalla EN INACTIVO DESDE EL GUIÓN DE PYTHON?
Élektra
-1

Lo tengo con:

import console 
console.clear()

si desea hacerlo en su secuencia de comandos, o si está en la consola, simplemente presione clear () y presione enter. Eso funciona en Pyto en iPhone. Sin embargo, puede depender de la consola.

Bryan Aneux
fuente
No hay consolemódulo en IDLE.
AKX
Dice que no hay módulo de consola.
Musa
-2

Esto funciona para mí en Windows:

print chr(12)

Joel Vroom
fuente
chr no es reconocido en la terminal IDLE
wbadry
Gracias Joel A mí también me funcionó.
También funciona para mí en Windows, Spyder IDE, y parece ser el código más simple para lograr el resultado deseado. {chr (12) tiene formato}
Ian
-4

Si está utilizando el terminal (estoy usando ubuntu), simplemente use la combinación de CTRL+ ldel teclado para borrar el script de Python, incluso borra el script del terminal ...

Arbaaz
fuente
1
Solo digo, pero la pregunta es sobre borrar la pantalla EN INACTIVO, DESDE UN ESCRITO DE PYTHON.
Élektra
El OP especificó IDLE.
wbadry
-5

¡No hay necesidad de escribir su propia función para hacer esto! Python tiene una función clara incorporada.

Escriba lo siguiente en el símbolo del sistema:

shell.clear()

Si se usa IPythonpara Windows, es

cls()
Michael Vogel
fuente
44
¿Se requiere algún tipo de importación para hacer esto, porque no funcionó para mí? Si hay una importación involucrada, debe incluirla en su respuesta. Además, la pregunta es sobre borrar el mensaje IN IDLE .
Élektra