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?
"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()
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
ctrl + L efface l'écran sur Ubuntu Linux.
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.
>>> import os
>>>def cls():
... os.system("clear")
...
>>>cls()
C'est fait parfaitement. Aucun '0' imprimé non plus.
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)
Il ne semble pas y avoir de moyen de vider le tampon IDLE 'Shell'.
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é!
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).
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.
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.
J'aime utiliser:
import os
clear = lambda : os.system('cls') # or clear for Linux
clear()
utilisez ceci
for num in range(1,100):
print("\n")
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.
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?
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
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.
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.
Cela fonctionne pour moi dans Windows:
print chr(12)
"commande + L" pour MAC OS X.
"control + L" pour Ubuntu
Votre capture d'écran montre que vous utilisez IDLE. cls
/clear
ne fonctionnera pas pour vous.