web-dev-qa-db-fra.com

Un moyen de vider la fenêtre IDLE de python?

Je sais qu'il existe un sujet similaire à propos de la console Python, mais je ne sais pas si ce sont les mêmes. J'ai essayé le système ("clair") et cela n'a pas fonctionné ici.

Comment effacer la fenêtre IDLE de python?

130
devoured elysium

"Cls" et "clear" sont des commandes qui effaceront un terminal (par exemple une invite DOS ou une fenêtre de terminal). Depuis votre capture d'écran, vous utilisez le shell dans IDLE, qui ne sera pas affecté par de telles choses. Malheureusement, je ne pense pas qu’il soit possible de vider l’écran dans IDLE. Le mieux que vous puissiez faire est de faire défiler l'écran de nombreuses lignes, par exemple:

print "\n" * 100

Bien que vous puissiez mettre cela dans une fonction:

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

Et appelez-le quand vous avez besoin de cls()

89
Brian

os.system('clear') fonctionne sur linux. Si vous utilisez Windows, essayez plutôt os.system('CLS').

Vous devez d'abord importer os comme ceci: 

import os
69
Nadia Alramli

ctrl + L efface l'écran sur Ubuntu Linux.

36
shxfee

La plupart des réponses apparaissent ici effacent les commandes d'effacement de l'écran de l'invite DOS. Ce qui n'est pas la question posée ici. Une autre réponse affichée ici est l’impression de lignes vierges montrant un effet de compensation de l’écran. 

La réponse la plus simple à cette question est 

Il n'est pas possible d'effacer Shell python IDLE sans une intégration de module externe. Si vous voulez vraiment obtenir un blanc pur et vierge, fermez le précédent et relancez-le. 

25
Abdul Rehman

Une extension permettant d’effacer le shell se trouve dans Issue6143 en tant que "demande de fonctionnalité". Cette extension est incluse avec IdleX .

16
Roger
>>> import os

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

C'est fait parfaitement. Aucun '0' imprimé non plus.

13
Derk Smith

Pour exécuter des commandes dans Python 2.4+, utilisez le module subprocess . Vous pouvez l'utiliser de la même manière que vous utilisez os.system.

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

Si vous l'exécutez dans la console Python, vous devrez faire quelque chose pour masquer la valeur de retour (pour os.system ou subprocess.call), comme pour l'attribuer à une variable:

cls = subprocess.call("cls", Shell=True)
8
Rudd Zwolinski

Il ne semble pas y avoir de moyen de vider le tampon IDLE 'Shell'.

8
Mark Ribau

Je vous recommanderais d'utiliser Thonny IDE pour Python. Son shell a l'option "Clear Shell" et vous pouvez également suivre les variables créées dans une liste séparée. Son débogage est très bon même en comparaison avec les IDE modernes. Vous pouvez également écrire du code dans un fichier python avec un accès à Shell au même endroit.

Et sa légèreté!

2
zHs

Aucune de ces solutions ne fonctionnait pour moi sous Windows 7 et dans IDLE. Wound up à l'aide de PowerShell, y exécuter Python et quitter pour appeler "cls" dans PowerShell afin de nettoyer la fenêtre. 

CONS: suppose que Python est déjà dans la variable PATH. En outre, cela efface vos variables Python (bien que redémarrer le Shell).

Avantages: conserve toutes les personnalisations de fenêtre que vous avez effectuées (couleur, taille de la police).

2
Draghon

Fichier -> Nouvelle fenêtre

Dans la nouvelle fenêtre **

Exécuter -> Shell Python

Le problème avec cette méthode est qu’elle effacera tout ce que vous avez défini, telles que les variables.

Sinon, vous devriez simplement utiliser l'invite de commande. 

ouvrir l'invite de commande

tapez "cd c:\python27"

tapez "python example.py", vous devez l'éditer en utilisant IDLE lorsqu'il n'est pas en mode interactif. Si vous êtes dans Python Shell, fichier -> nouvelle fenêtre.

Notez que example.py doit se trouver dans le même répertoire que C:\python27 ou dans le répertoire dans lequel vous avez installé python.

Ensuite, à partir d’ici, il vous suffit d’appuyer sur la flèche HAUT de votre clavier. Vous venez de modifier exemple.py, utilisez CTRL + S, puis revenez à la commande Invite, appuyez sur la touche fléchée HAUT, appuyez sur entrée.

Si la commande Invite est trop chargée, tapez simplement "clr"

La commande "clr" ne fonctionne qu'avec l'invite de commande, elle ne fonctionnera pas avec IDLE.

2
anonymous coward

Vous pouvez créer un AutoHotKey script.

Pour définir ctrl-r sur un raccourci clavier pour effacer le shell:

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

Installez simplement AutoHotKey, placez ce qui précède dans un fichier nommé idle_clear.ahk, exécutez le fichier et votre raccourci clavier est actif.

2
Scruffy

J'aime utiliser:

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

clear()
1
lfsando

utilisez ceci

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

Il semble qu'il soit impossible de le faire sans aucune bibliothèque externe.

Si vous utilisez Windows et que vous ne voulez pas ouvrir ou fermer le shell à chaque fois que vous voulez l'effacer, vous pouvez également utiliser la commande Windows Invite.

  • Tapez python et appuyez sur Entrée pour transformer la commande windows en invite python inactif (assurez-vous que python est installé).

  • Tapez quit() et appuyez sur Entrée pour rétablir l'invite de commande Windows.

  • Tapez cls et appuyez sur Entrée pour effacer la commande Invite/Windows Shell.

1
KeepMove

Si vous souhaitez effacer le tampon Shell, accédez à Shell> redémarrez Shell dans IDLE. Votre question est un peu vague. Voulez-vous effacer le tampon Shell ou essayez-vous d'appeler la commande du système d'exploitation?

1
IanStallings

Le meilleur moyen de le faire sous Windows est d'utiliser la commande Invite 'cmd' et d'accéder au répertoire python. La commande Invite est disponible dans le menu Démarrer> Exécuter> 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
1
Al-Ani
from subprocess import call as c

def cls():

    c("cls",Shell=True)

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

cls()

Chaque fois que vous souhaitez effacer la console, appelez la fonction cls, mais notez que cette fonction effacera l'écran sous Windows uniquement si vous exécutez Python Script à l'aide de cmd Prompt, elle n'effacera pas le tampon si vous exécutez IDLE.

0
Akash Rana

Comme Mark.ribau l'a dit, il semble qu'il n'y ait aucun moyen d'effacer le widget Texte en mode inactif. On devrait éditer le module EditorWindow.py et ajouter une méthode et un élément de menu dans la classe EditorWindow qui fait quelque chose comme:

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

et peut-être un peu plus de gestion de balise dont je ne suis pas au courant.

0
tzot

Cela fonctionne pour moi dans Windows:

print chr(12)

0
Joel Vroom

"commande + L" pour MAC OS X.

"control + L" pour Ubuntu 

0
Darshan N S

Votre capture d'écran montre que vous utilisez IDLE. cls/clear ne fonctionnera pas pour vous.

0
orip