Există vreo modalitate de a șterge fereastra IDLE a lui python? (Programare, Python, Python Idle)

a devorat elysium a intrebat.

Știu că există un topic similar despre consola python, dar nu știu dacă sunt aceleași. Am încercat system(„clear”) și nu a funcționat aici.

Cum se șterge fereastra IDLE din python?

Comentarii

  • nu este un duplicat, OP întreabă despre cum să ștergeți shell-ul IDLE, nu consola –  > Por Moha cămila atotputernică.
  • Motivul pentru care acest lucru nu funcționează este că Python începe o nouă sesiune de shell și execută comanda clear în ea. De asemenea, se explică de ce cd nu funcționează în system.os. –  > Por jkd.
  • 17

  • Țineți apăsat ctrl + j pentru un timp și apoi apăsați enter, Aceasta va fi cea mai bună cale –  > Por ytpillai.
  • @ytpillai, Ah, dar asta îmi dă promptul din partea de jos. O soluție, fără îndoială, dar totuși provoacă o oarecare comoditate. –  > Por John Red.
  • Nu este o soluție, dar pentru oricine altcineva care a fost curios, se poate vedea EditorWindow obiectul pe care extensia IDLEX îl folosește pentru a șterge consola pare să fie accesibil în IDLE folosind (la prompt) inspect.currentframe().f_back.f_locals['self'].rpchandler.console, , deși orice lucru care implică utilizarea funcției text atribut blochează consola, așa că nu este de mare ajutor. –  > Por Christian Reall-Fluharty.
24 răspunsuri
Brian

„cls” și „clear” sunt comenzi care vor șterge un terminal (adică un prompt DOS, sau o fereastră de terminal). Din captura ta de ecran, folosești shell-ul din IDLE, care nu va fi afectat de astfel de lucruri. Din păcate, nu cred că există o modalitate de a șterge ecranul în IDLE. Cel mai bun lucru pe care îl puteți face este să derulați ecranul în jos multe rânduri, de ex:

print ("
" * 100)

Deși ați putea pune acest lucru într-o funcție:

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

Și apoi să o apelați atunci când este nevoie ca cls()

Comentarii

  • Aceasta șterge ecranul, dar încă mai primești promptul „>>> „la ultima linie, mai degrabă în partea de sus, ceea ce cred că îl face mai puțin ineficient…totuși +1 pentru ștergerea ecranului –  > Por Invictus.
  • Python 3.4.2 – A trebuit să încapsulez „
    ” și * 100 în paranteze, deci: print ("
    " * 100)
    –  > Por cody.codes.
  • Acest lucru nu va șterge ecranul, încă pot derula înapoi în sus! –  > Por esoterik.
  • ctrl + j de asemenea, funcționează. Ar putea fi utilă includerea acesteia. stackoverflow.com/a/11993793/4871483 –  > Por ytpillai.
  • Rețineți că acesta este un tag python. Nu este specific versiunii. Pentru toți utilizatorii python 3.x este print('
    '*100)
    –  > Por Luke.
Nadia Alramli

os.system('clear') funcționează pe linux. Dacă folosiți Windows, încercați os.system('CLS') în schimb.

Trebuie să importați mai întâi os-ul astfel:

import os

Comentarii

  • os.system(‘CLS’) funcționează în Windows. (Python 2.6). Ecranul rezultat este golit, afișând doar un „0”, care presupun că este valoarea de returnare pentru CLS, în partea de sus. Următoarea linie are promptul >>>. –  > Por mjv.
  • 40

  • acest lucru face un apel os la cls într-un prompt de comandă extern și nu interacționează cu Idle –  > Por bunglestink.
  • 15

  • idle nu este o fereastră de consolă. Atât clear, cât și cls operează pe ferestre de consolă/terminal. –  > Por Bryan Oakley.
  • 17

  • Întrebarea este „clear screen IN IDLE”, metodele de mai sus cu siguranță nu funcționează pe calculatorul meu –  > Por Élektra.
  • 22

  • De ce este acest lucru upvoted? Acest lucru va deschide un nou prompt de comandă, îl va șterge și îl va închide –  > Por ytpillai.
Abdul Rehman

Cele mai multe răspunsuri, aici fac ștergerea ecranului de prompt DOS, cu ștergerea comenzilor, ceea ce nu este întrebarea. Alte răspunsuri aici, au fost tipărirea de linii goale pentru a arăta un efect de curățare a ecranului.

Cel mai simplu răspuns la această întrebare este

Nu este posibilă ștergerea shell-ului python IDLE fără integrarea unui modul extern. Dacă doriți cu adevărat să obțineți un shell gol, pur și simplu proaspăt, închideți shell-ul anterior și rulați-l din nou

Comentarii

  • Acesta este un răspuns bun, direct și practic la această întrebare; închideți IDLE, lăsați fișierul deschis, rulați din nou fișierul și IDLE are acum un ecran proaspăt. –  > Por Mike_K.
  • @Mike_K, poate fi util, dar nu întotdeauna. Chiar acum am un ecran divizat (o carte <|> idle). Când reexecut Idle, noul ecran vine în poziția/dimensiunile implicite. Deci, va deveni foarte plictisitor. –  > Por sdlins.
  • Deci, ei nu au implementat cel mai simplu lucru. Nu trebuia să fie o comandă, ci un buton în meniul de vizualizare. –  > Por Moradnejad.
shxfee

ctrl + L șterge ecranul pe Ubuntu Linux.

Comentarii

  • De asemenea, pe Red Hat/Fedora/CentOS –  > Por DtechNet.
  • Și pe Windows, dacă folosiți IDLEx. Noroc! Mă bucur că am găsit în sfârșit o soluție simplă! –  > Por John Red.
  • Nu funcționează în Ubuntu 18.04. Cel mai puțin rău aici este utilizarea CTRL + J de mai multe ori. –  > Por sdlins.
  • @slinstj care a închis-o cu totul pe Windows –  > Por Mubarek.
  • Adăugat la hack-ul meu de astăzi! De asemenea, funcționează ca un farmec în MacOS! –  > Por xtornasol512.
Roger

O extensie pentru a șterge shell-ul poate fi găsită în Problema6143 ca o „cerere de funcționalitate”. Această extensie este inclusă cu IdleX.

Comentarii

  • Aceasta este o extensie genială pentru Python Idle. Vă mulțumim foarte mult! –  > Por Indrajit.
Derk Smith
>>> import os

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

Asta face este perfect. Nici măcar nu s-a imprimat „0”.

Comentarii

  • Frumos, simplu, face ceea ce spune. Sau după import os tastați pur și simplu os.system("clear") deși funcția este utilă dacă aveți nevoie să ștergeți des ecranul. –  > Por Dave Everitt.
  • os.system(„clear”) a funcționat. La mine funcționează, dar trebuie să scriu „cls()” –  > Por j0h.
  • Când am încercat acest lucru, linia de comandă a returnat <function cls at 0x024D25D0> și consola nu s-a golit –  > Por ericgrosse.
  • Cel mai bun răspuns de până acum –  > Por hello123.
  • @ericgrosse trebuie să scrieți cls(), nu cls –  > Por Banoona.
Mark Ribau

Nu pare să existe o modalitate de a șterge bufferul IDLE ‘shell’.

Comentarii

Rudd Zwolinski

Modalitatea de a executa comenzi în Python 2.4+ este de a folosi extensia subproces modul. Îl puteți utiliza în același mod în care folosiți modul os.system.

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

Dacă executați acest lucru în consola python, va trebui să faceți ceva pentru a ascunde valoarea de întoarcere (fie pentru os.system sau subprocess.call), cum ar fi să o atribuiți unei variabile:

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

Comentarii

  • Traceback (ultimul apel cel mai recent): File „<pyshell#1>”, line 1, in <module> subprocess.call(„cls”) File „C:Python26libsubprocess.py”, line 444, in call return Popen(*popenargs, **kwargs).wait() File „C:Python26libsubprocess.py”, line 595, in init errread, errwrite) Fișier „C:Python26libsubprocess.py”, linia 804, în _execute_child startupinfo) WindowsError: [Eroare 2] Sistemul nu poate găsi fișierul specificat –  > Por elysium devorat.
  • Hmm… Asta primesc pentru că nu folosesc Windows și, prin urmare, nu am putut să îl testez. Încercați subprocess.call(„cls”, shell=True) –  > Por Rudd Zwolinski.
laș anonim

Fișier -> Fereastră nouă

În noua fereastră**

Run -> Python Shell

Problema cu această metodă este că va șterge toate lucrurile pe care le-ați definit, cum ar fi variabilele.

Ca alternativă, ar trebui să folosiți pur și simplu promptul de comandă.

deschideți command prompt

tastați „cd c:python27”

tastați „python example.py” , trebuie să editați acest lucru folosind IDLE atunci când nu este în modul interactiv. Dacă sunteți în shell-ul python, fișierul -> fereastră nouă.

Rețineți că example.py trebuie să fie în același director cu C:python27, sau în orice director în care aveți instalat python.

Apoi, de aici, trebuie doar să apăsați tasta săgeată UP de pe tastatură. Trebuie doar să editați example.py, să folosiți CTRL + S, apoi să vă întoarceți la promptul de comandă, să apăsați tasta săgeată UP și să apăsați enter.

Dacă promptul de comandă devine prea aglomerat, tastați doar „clr”

Comanda „clr” funcționează doar cu command prompt, nu va funcționa cu IDLE.

Comentarii

  • Spun doar așa, dar cred că întrebarea se referă la „Cum se șterge ecranul ÎN IDLE DIN INTERIORUL SCRIPTULUI PYTHON”. –  > Por Élektra.
  • Pornirea unui fișier nou și rularea shell-ului Python în el părea să fie singura opțiune disponibilă pentru mine, nimic altceva nu a funcționat. Mulțumesc! –  > Por Serghei Zakharov.
Sandeep Gaadhe

Se pare că nu există o modalitate directă de a șterge consola IDLE.

Un mod în care o fac este utilizarea lui exit() ca ultimă comandă în scriptul meu python (.py). Când execut scriptul, acesta deschide întotdeauna o nouă consolă și un nou prompt înainte de a ieși.

Partea bună: Consola este lansată din nou de fiecare dată când scriptul este executat. partea proastă: Consola este lansată din nou de fiecare dată când scriptul este executat.

Luiz Domingues

Îmi place să folosesc:

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

clear()

Comentarii

  • Se pare că acest răspuns a fost deja furnizat –  > Por OneCricketeer.
Ari

Se pare că este imposibil să o faci fără nicio bibliotecă externă.

O modalitate alternativă, dacă utilizați Windows și nu doriți să deschideți și să închideți shell-ul de fiecare dată când doriți să îl ștergeți, este să utilizați promptul de comandă Windows.

  • Tastați python și apăsați enter pentru a transforma promptul de comandă Windows în python idle (asigurați-vă că python este instalat).

  • Tastați quit() și apăsați enter pentru a reveni la promptul de comandă Windows.

  • Introduceți cls și apăsați enter pentru a șterge promptul de comandă/ shell-ul Windows.

Darshan N S

comandă + L” pentru MAC OS X.

control + L” pentru Ubuntu

Șterge ultima linie din sesiunea interactivă

Comentarii

  • Nu știam despre această funcție, mulțumesc Scrieți întotdeauna ce face comanda dvs. –  > Por Priyank Pathak.
tzot

După cum a spus mark.ribau, se pare că nu există nicio modalitate de a șterge widgetul Text în inactivitate. Ar trebui să se editeze fișierul EditorWindow.py modul și să se adauge o metodă și un element de meniu în clasa EditorWindow care să facă ceva de genul:

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

și poate mai există o gestionare a tag-urilor de care nu sunt conștient.

Draghon

Niciuna dintre aceste soluții nu a funcționat pentru mine pe Windows 7 și în IDLE. Am ajuns să folosesc PowerShell, să execut Python în cadrul acestuia și să ies pentru a apela „cls” în PowerShell pentru a șterge fereastra.

CONTRA: Presupune că Python se află deja în variabila PATH. De asemenea, acest lucru șterge variabilele Python (deși la fel se întâmplă și cu repornirea shell-ului).

PROS: Păstrează orice personalizare a ferestrei pe care ați făcut-o (culoare, dimensiunea fontului).

Al-Ani

Cel mai bun mod de a face acest lucru pe Windows este folosind promptul de comandă ‘cmd’ și accesați directorul python promptul de comandă ar putea fi găsit în meniul Start >run>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

Comentarii

  • Just Saying, dar cred că întrebarea se referă la „Cum se șterge ecranul ÎN IDLE”. (Accentuarea pe IN IDLE) –  > Por Élektra.
Scruffy

Puteți face o AutoHotKey script.

Pentru a seta ctrl-r la o tastă rapidă pentru a șterge shell-ul:

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

Doar instalați AutoHotKey, puneți cele de mai sus într-un fișier numit idle_clear.ahk, rulați fișierul, iar tasta rapidă este activă.

Zaheer

V-aș recomanda să folosiți Thonny IDE pentru Python. Este shell-ul are opțiunea „Clear Shell” și puteți, de asemenea, urmări variabilele create într-o listă separată. Depanarea sa este foarte bună chiar și în comparație cu IDE-urile moderne. Puteți, de asemenea, să scrieți cod în fișierul python împreună cu accesul la shell în același loc.

Și este ușor!

Tauseef

utilizați acest lucru

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

Comentarii

  • Funcționează, dar ajungi să ai o distanță de defilare incredibil de mare dacă vrei să vezi ceva de mai devreme. –  > Por Élektra.
  • Încercați să reduceți intervalul(1,10): –  > Por Tauseef.
  • @Xenon Dar dacă ideea este de a șterge fereastra, atunci utilizatorul nu ar trebui să poată vedea ceva de mai devreme. –  > Por Sam.
n c

Creați o funcție ca atare…

def clear():
    os.system('clear')

și apoi când ajungi în partea de jos a IDLE-ului Python poți folosi doar

clear()

🙂

Joel Vroom

Acest lucru funcționează pentru mine în Windows:

print chr(12)

Comentarii

  • chr nu este recunoscut în terminalul IDLE –  > Por wbadry.
  • Mulțumesc Joel. A funcționat și pentru mine. – user3376020
  • Funcționează și pentru mine în Windows, Spyder IDE, și pare a fi cel mai simplu cod pentru a obține rezultatul dorit. {chr(12) este formfeed} –  > Por Ian.
Bryan Aneux

Am obținut-o cu:

import console 
console.clear()

dacă vrei să o faci în script, sau dacă ești în consolă doar atingeclear()și apasă enter. Asta funcționează pe Pyto pe iPhone. S-ar putea să depindă totuși de consolă.

Comentarii

  • Nu există console modul în IDLE. –  > Por AKX.
  • Spune că nu există un modul pentru consolă. –  > Por Musa.
  • Asta a fost în consola pyto pe iPhone. Scriam un script pe care am vrut doar să îl afișez în consola de pe iPhone. Nu sunt sigur în cazul altora. –  > Por Bryan Aneux.
Arbaaz

Dacă folosiți terminalul ( eu folosesc ubuntu ) , atunci folosiți doar combinația de CTRL+l de la tastatură pentru a șterge scriptul python, chiar și acesta șterge scriptul terminalului…

Comentarii

  • Zic și eu, dar întrebarea se referă la ștergerea ecranului ÎN IDLE, DINTRE UN SCRIPT PYTHON. –  > Por Élektra.
  • OP a specificat IDLE. –  > Por wbadry.
Michael Vogel

Nu este nevoie să scrieți propria funcție pentru a face acest lucru! Python are o funcție clear încorporată.

Tastați următoarele în promptul de comandă:

shell.clear()

Dacă utilizați IPython pentru Windows, este

cls()

Comentarii

  • Este nevoie de un fel de import pentru a face acest lucru, pentru că nu a funcționat pentru mine. Dacă există un import implicat, ar trebui să îl introduceți în răspunsul dvs. De asemenea, întrebarea se referă la ștergerea promptului ÎN IDLE. –  > Por Élektra.