Qualche modo per cancellare la finestra IDLE di Python?


154

So che c'è un argomento simile sulla console Python, ma non so se siano uguali. Ho provato il sistema ("cancella") e non ha funzionato qui.

Come posso cancellare la finestra IDLE di Python?


10
non è un duplicato, OP chiede come cancellare la shell IDLE, non console
Moha l'onnipotente cammello

1
Il motivo per cui non funziona è perché Python avvia una nuova sessione di shell ed esegue il comando clearal suo interno. Spiega anche perché cdnon funziona system.os.
jkd

14
Tieni premuto ctrl + jper un po 'e poi premi Invio, sarà il modo migliore
ytpillai

1
@ytpillai, Ah, ma questo mi dà il suggerimento in fondo. Una soluzione, senza dubbio, ma crea ancora qualche comodità.
John Red,

Risposte:


97

"Cls" e "clear" sono comandi che cancelleranno un terminale (cioè un prompt di DOS o una finestra di terminale). Dal tuo screenshot, stai usando la shell in IDLE, che non sarà influenzata da queste cose. Sfortunatamente, non penso che ci sia un modo per cancellare lo schermo in IDLE. Il meglio che puoi fare è scorrere lo schermo su molte linee, ad esempio:

print "\n" * 100

Anche se potresti metterlo in una funzione:

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

E poi chiamalo quando necessario come cls()


13
Cancella lo schermo ma ottieni ancora il prompt ">>>" nell'ultima riga piuttosto in alto, che immagino lo renda meno inefficiente ... ancora +1 per cancellare lo schermo
Invictus

10
Python 3.4.2 - Ho dovuto racchiudere tra parentesi "\ n" e * 100, quindi:print ("\n" * 100)
cody.codes

4
Questo non cancella lo schermo, posso ancora scorrere indietro!
esoterik,

2
ctrl + jfunziona anche. Potrebbe essere utile incluso quello. stackoverflow.com/a/11993793/4871483
ytpillai

1
Nota che questo è un tag Python. Non specifico della versione. Per tutti gli utenti di Python 3.x èprint('\n'*100)
Luca

83

os.system('clear')funziona su linux. Se stai eseguendo Windows, prova os.system('CLS')invece.

Devi prima importare i SO in questo modo:

import os

13
Os.system ('CLS') funziona in Windows. (Python 2.6). La schermata risultante viene cancellata, mostrando solo uno "0", che presumo sia il valore di ritorno per CLS, in alto. La riga successiva ha il prompt >>>.
mjv,

35
questo fa una chiamata os a cls in un prompt dei comandi esterno e non interagisce con Idle
bunglestink

15
inattivo non è una finestra della console. Sia clear che cls funzionano su finestre console / terminali.
Bryan Oakley,

16
La domanda è "cancella lo schermo IN INGRESSO" i metodi di cui sopra certamente non funzionano sul mio computer
Élektra

21
Perché questo è stato votato? Questo aprirà un nuovo prompt dei comandi, lo cancellerà e lo chiuderà
ytpillai,

39

La maggior parte delle risposte, qui cancella la schermata del prompt di DOS, con i comandi di cancellazione, che non è la domanda. Altre risposte qui sono state la stampa di righe vuote per mostrare un effetto di schiarimento dello schermo.

La risposta più semplice a questa domanda è

Non è possibile cancellare la shell IDLE di Python senza l'integrazione di un modulo esterno. Se vuoi davvero ottenere una shell fresca pura vuota, chiudi la shell precedente ed eseguila di nuovo


3
Questa è una risposta buona, diretta e pratica a questa domanda; chiudi inattivo, lascia il file aperto, esegui di nuovo il file e inattivo ora ha una nuova schermata.
Mike_K,

@Mike_K, può essere utile, ma non mai. In questo momento ho uno schermo diviso (un libro <|> inattivo). Quando eseguo di nuovo lo stato di inattività, la nuova schermata appare nella posizione / dimensioni predefinite. Quindi, diventerà molto noioso.
sdlins,

38

ctrl+ Lcancella lo schermo su Ubuntu Linux.


Anche su Red Hat / Fedora / CentOS
DtechNet il

1
Anche su Windows, se si utilizza IDLEx. Saluti! Sono così felice di aver finalmente ottenuto una soluzione semplice!
John Red,

Non funziona in Ubuntu 18.04. Il peggio qui è l'uso CTRL+ Jpiù volte.
sdlins,

@slinstj che l'ha chiuso del tutto su Windows
Mubarek,

Aggiunto al mio hack di oggi! Funziona anche come un fascino in MacOS!
xtornasol512

21

Un'estensione per cancellare la shell è disponibile nel numero 6143 come "richiesta di funzionalità". Questa estensione è inclusa in IdleX .


1
Questa è una brillante estensione di Python Idle. Grazie mille!
Indrajit,

19
>>> import os

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

Questo è perfettamente. Non viene stampato neanche '0'.


Bello, semplice, fa quello che dice. O dopo aver import osdigitato, os.system("clear")anche se la funzione è utile se è spesso necessario cancellare lo schermo.
Dave Everitt,

1
os.system ("clear") ha funzionato. Questo funziona per me, ma devo digitare "cls ()"
j0h

Quando ho provato questo, la riga di comando ha restituito <funzione cls a 0x024D25D0> e la console non è stata cancellata
ericgrosse,

La migliore risposta finora
ciao123

@ericgrosse devi digitare cls (), non cls
Banoona il


7

Il modo per eseguire i comandi in Python 2.4+ è utilizzare il modulo sottoprocesso . Puoi usarlo nello stesso modo in cui lo usi os.system.

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

Se lo stai eseguendo nella console di Python, dovrai fare qualcosa per nascondere il valore di ritorno (per uno os.systemo per subprocess.call), come assegnarlo a una variabile:

cls = subprocess.call("cls", shell=True)

Traceback (ultima chiamata più recente): file "<pyshell # 1>", riga 1, in <module> subprocess.call ("cls") File "C: \ Python26 \ lib \ subprocess.py", riga 444, in call return Popen (* popenargs, ** kwargs) .wait () File "C: \ Python26 \ lib \ subprocess.py", riga 595, in init errread, errwrite) File "C: \ Python26 \ lib \ subprocess.py ", riga 804, in _execute_child startupinfo) WindowsError: [Errore 2] Il sistema non riesce a trovare il file specificato
elysium divorato

1
Hmm .. Questo è quello che ottengo per non usare Windows e quindi non essere in grado di testarlo. Prova subprocess.call ("cls", shell = True)
Rudd Zwolinski,


4

File -> Nuova finestra

Nella nuova finestra **

Esegui -> Python Shell

Il problema con questo metodo è che cancellerà tutte le cose che hai definito, come le variabili.

In alternativa, dovresti semplicemente usare il prompt dei comandi.

aprire il prompt dei comandi

digitare "cd c: \ python27"

digitare "python example.py", è necessario modificarlo utilizzando IDLE quando non è in modalità interattiva. Se sei nella shell di Python, file -> nuova finestra.

Si noti che example.py deve trovarsi nella stessa directory di C: \ python27 o in qualsiasi altra directory in cui è installato Python.

Quindi da qui, basta premere il tasto freccia SU sulla tastiera. Basta modificare esempio.py, utilizzare CTRL + S, quindi tornare al prompt dei comandi, premere il tasto freccia SU, premere Invio.

Se il prompt dei comandi diventa troppo affollato, basta digitare "clr"

Il comando "clr" funziona solo con il prompt dei comandi, non funziona con IDLE.


3
Sto solo dicendo, ma credo che la domanda sia: 'Come si cancella lo schermo IN FERMO DALL'INTERNO DELLO SCRIPT PYTHON.
Élektra,

Avvio di un nuovo file ed esecuzione della shell Python in esso sembrava essere l'unica opzione disponibile per me, nient'altro ha funzionato. Grazie!
Sergey Zakharov,

4

Sembra che non ci sia un modo diretto per cancellare la console IDLE.

Un modo in cui lo faccio è l'uso di exit () come ultimo comando nel mio script Python (.py). Quando eseguo lo script, si apre sempre una nuova console e viene richiesto prima di uscire.

Upside: la console viene avviata ogni volta che lo script viene eseguito. Unico inconveniente: la console viene avviata ogni volta che lo script viene eseguito.


2

È possibile creare uno script AutoHotKey .

Per impostare ctrl-r su un tasto di scelta rapida per cancellare la shell:

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

Basta installare AutoHotKey, inserire quanto sopra in un file chiamato idle_clear.ahk, eseguire il file e il tasto di scelta rapida è attivo.


2

Nessuna di queste soluzioni ha funzionato per me su Windows 7 e in IDLE. Completa l'utilizzo di PowerShell, eseguendo Python al suo interno ed uscendo per chiamare "cls" in PowerShell per cancellare la finestra.

CONTRO: Suppone che Python sia già nella variabile PATH. Inoltre, questo cancella le variabili di Python (anche se riavvia la shell).

PRO: mantiene qualsiasi personalizzazione della finestra che hai fatto (colore, dimensione del carattere).


2

Sembra impossibile farlo senza alcuna libreria esterna.

Un modo alternativo se stai usando Windows e non vuoi aprire e chiudere la shell ogni volta che vuoi cancellarla è usando il prompt dei comandi di Windows.

  • Digita pythone premi invio per trasformare il prompt dei comandi di Windows in idle python (assicurati che python sia installato).

  • Digita quit()e premi invio per tornare al prompt dei comandi di Windows.

  • Digitare clse premere invio per cancellare il prompt dei comandi / shell di Windows.


2

Ti consiglierei di usare Thonny IDE per Python. La shell ha l'opzione "Cancella shell" e puoi anche tenere traccia delle variabili create in un elenco separato. Il debug è ottimo anche se confrontato con gli IDE moderni. Puoi anche scrivere codice nel file Python insieme all'accesso alla shell nello stesso posto.

Ed è leggero!


2

" comando + L " per MAC OS X.

" control + L " per Ubuntu

Cancella l'ultima riga della sessione interattiva


Non sapevo di questa funzione, grazie Scrivi sempre cosa fa il tuo comando.
Priyank Pathak,

1

Come diceva mark.ribau, sembra che non ci sia modo di cancellare il widget Testo inattivo. Si dovrebbe modificare il EditorWindow.pymodulo e aggiungere un metodo e una voce di menu nella classe EditorWindow che faccia qualcosa del tipo:

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

e forse qualche altra gestione di tag di cui non sono a conoscenza.


1

Il modo migliore per farlo su Windows è usare il prompt dei comandi 'cmd' e accedere alla directory python che il prompt dei comandi potrebbe essere trovato nel menu Start> Esegui> 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

2
Sto solo dicendo, ma credo che la domanda sia "Come si cancella lo schermo IN IDLE". (Enfasi su IN IDLE)
Élektra,

1

Usa questo

for num in range(1,100):
    print("\n")

Funziona, ma si finisce con una distanza di scorrimento incredibilmente lunga se si desidera vedere qualcosa di precedente.
Élektra,

Cerca di ridurre l'intervallo (1,10):
Tauseef

@Xenon Ma se l'idea è di cancellare la finestra, quindi l'utente non dovrebbe essere in grado di vedere qualcosa da prima.
Sam

0

Lo screenshot mostra che stai utilizzando IDLE. cls/ clearnon funzionerà per te.


5
Questa non è una buona risposta; OP non ha chiesto "cosa NON mi aiuterà a cancellare la finestra IDLE di Python".
DeFazer,

-1
from subprocess import call as c

def cls():

    c("cls",shell=True)

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

cls()

Ogni volta che si desidera cancellare la console, chiamare la funzione cls, ma si noti che questa funzione cancellerà lo schermo in Windows solo se si sta eseguendo Python Script utilizzando il prompt cmd, non cancellerà il buffer se si esegue da IDLE.


2
Sto solo dicendo, ma credo che la domanda sia: 'Come si cancella lo schermo IN FERMO DALL'INTERNO DELLO SCRIPT PYTHON.
Élektra,

-1

L'ho preso con:

import console 
console.clear()

se vuoi farlo nel tuo script, o se sei nella console, tocca clear () e premi invio. Funziona su Pyto su iPhone. Tuttavia, potrebbe dipendere dalla console.


Non esiste un consolemodulo in IDLE.
AKX

Dice nessun modulo console.
Musa,

-2

Questo funziona per me in Windows:

print chr(12)


chr non è riconosciuto nel terminale IDLE
wbadry il

Grazie Joel. Ha funzionato anche per me.

Funziona anche per me in Windows, IDE Spyder, e sembra essere il codice più semplice per ottenere il risultato desiderato. {chr (12) is formfeed}
Ian

-4

Se stai usando il terminale (sto usando Ubuntu), usa semplicemente la combinazione di CTRL+ ldalla tastiera per cancellare lo script Python, anche esso cancella lo script del terminale ...


1
Stavo solo dicendo, ma la domanda è di cancellare lo schermo IN IDLE, DA UN SCRITTTO DI PYTHON.
Élektra,

L'OP ha specificato IDLE.
wbadry,

-5

Non è necessario scrivere la tua funzione per farlo! Python ha una funzione chiara integrata.

Digitare quanto segue nel prompt dei comandi:

shell.clear()

Se si utilizza IPythonper Windows, lo è

cls()

4
È necessario un tipo di importazione per farlo, perché non ha funzionato per me. Se è coinvolta un'importazione, è necessario inserirla nella risposta. Inoltre, la domanda riguarda la cancellazione del prompt IN IDLE .
Élektra,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.