202 votes

Y a-t-il un moyen d'effacer la fenêtre IDLE de python ?

Je sais qu'il existe un sujet similaire sur la console python, mais je ne sais pas si c'est la même chose. J'ai essayé system("clear") et cela n'a pas fonctionné ici.

Comment effacer la fenêtre IDLE de python ?

12 votes

Ce n'est pas un doublon, le PO demande comment effacer le shell IDLE, pas la console.

2 votes

La raison pour laquelle cela ne fonctionne pas est que Python lance une nouvelle session shell et exécute la commande clear là-dedans. Cela explique aussi pourquoi cd ne fonctionne pas dans system.os .

19 votes

Maintenez la pression ctrl + j pendant un moment, puis appuyez sur la touche entrée, ce sera la meilleure façon

111voto

Brian Points 48423

Les commandes "cls" et "clear" permettent d'effacer un terminal (c'est-à-dire une invite DOS ou une fenêtre de terminal). D'après 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 existe un moyen d'effacer l'écran dans IDLE. Le mieux que vous puissiez faire est de faire défiler l'écran vers le bas sur plusieurs lignes, par exemple :

print ("\n" * 100)

Mais vous pourriez mettre cela dans une fonction :

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

Et l'appeler en cas de besoin comme cls()

14 votes

Il efface l'écran, mais vous obtenez toujours l'invite ">>>"à la dernière ligne plutôt qu'en haut, ce qui, je suppose, le rend moins inefficace ... toujours +1 pour l'effacement de l'écran.

11 votes

Python 3.4.2 - J'ai dû encaser " \n " et * 100 entre parenthèses, donc : print ("\n" * 100)

5 votes

Cela n'effacera pas l'écran, je peux toujours faire défiler vers le haut !

108voto

Nadia Alramli Points 40381

os.system('clear') fonctionne sous linux. Si vous utilisez Windows, essayez os.system('CLS') à la place.

Vous devez d'abord importer os comme ceci :

import os

14 votes

Le os.system('CLS') fonctionne sous Windows. (Python 2.6). L'écran résultant est effacé, montrant seulement un "0", qui je suppose est la valeur de retour pour CLS, en haut. La ligne suivante présente l'invite >>>.

0 votes

Eh bien, ça n'efface pas le shell python. Mais je peux voir l'impression 0.

2 votes

Cela ne fonctionne pas dans le shell tkinter de Windows Idle, bien que cela fonctionne probablement dans la ligne de commande.

61voto

Abdul Rehman Points 335

La plupart des réponses, ici, font de l'effacement de l'écran d'invite DOS, l'effacement des commandes, ce qui n'est pas la question. D'autres réponses imprimaient des lignes vides pour montrer un effet d'effacement de l'écran.

La réponse la plus simple à cette question est

Il n'est pas possible de vider le shell IDLE de python sans intégrer un module externe. Si vous voulez vraiment obtenir un shell vierge, il suffit de fermer le shell précédent et de le relancer.

4 votes

Voici une bonne réponse, directe et pratique, à cette question : fermez idle, laissez le fichier ouvert, exécutez à nouveau le fichier et idle a maintenant un nouvel écran.

0 votes

@Mike_K, cela peut être utile, mais pas toujours. Actuellement, j'ai un écran divisé (un livre <|> idle). Lorsque je réexécute l'idle, le nouvel écran arrive dans la position/dimensions par défaut. Donc, cela va devenir très ennuyeux.

1 votes

Donc, ils n'ont pas mis en œuvre la chose la plus simple. Il ne devait pas s'agir d'une commande, mais d'un bouton dans le menu d'affichage.

26voto

Roger Points 601

Une extension pour effacer l'obus peut être trouvée dans Numéro 6143 comme une "demande de fonctionnalité". Cette extension est incluse dans IdleX .

1 votes

C'est une extension brillante de Python Idle. Merci beaucoup !

6voto

Rudd Zwolinski Points 6852

La façon d'exécuter des commandes dans Python 2.4+ est d'utiliser la commande sous-processus module. Vous pouvez l'utiliser de la même manière que vous utilisez le module os.system .

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

Si vous exécutez cette opération dans la console python, vous devrez faire quelque chose pour masquer la valeur de retour (pour l'un ou l'autre des éléments suivants os.system o subprocess.call ), comme l'assigner à une variable :

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

0 votes

Traceback (dernier appel le plus récent) : File "<pyshell#1>", line 1, in <module> subprocess.call("cls") File " C:\Python26\lib\subprocess.py ", ligne 444, dans call return Popen(*popenargs, **kwargs).wait() Fichier " C:\Python26\lib\subprocess.py ", ligne 595, dans init errread, errwrite) Fichier " C:\Python26\lib\subprocess.py ", ligne 804, dans _execute_child startupinfo) WindowsError : [Erreur 2] Le système ne trouve pas le fichier spécifié.

1 votes

Hmm C'est ce que j'obtiens pour ne pas utiliser Windows et donc ne pas pouvoir le tester. Essayez subprocess.call("cls", shell=True)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X