Comme la plupart des développeurs Python, je garde généralement une fenêtre de console ouverte avec l'interpréteur Python en cours d'exécution pour tester des commandes, des dir()
trucs help() stuff
, etc.
Comme toute console, après un certain temps, l'arriéré visible des commandes et des impressions passées devient encombré, et parfois déroutant lors de la réexécution de la même commande plusieurs fois. Je me demande si, et comment, effacer la console d'interprétation Python.
J'ai entendu parler d'un appel système et d'un appel cls
sur Windows ou clear
sur Linux, mais j'espérais qu'il y aurait quelque chose que je pourrais commander à l'interprète lui-même.
Remarque: je fonctionne sous Windows, donc Ctrl+L
cela ne fonctionne pas.
Réponses:
Comme vous l'avez mentionné, vous pouvez effectuer un appel système:
Pour les fenêtres
Pour Linux, le lambda devient
la source
def
? Pourquoi utiliser unlambda
quand undef
est plus clair?clear = lambda: os.system('cls') or None
ici quelque chose de pratique qui est un peu plus multiplateforme
la source
import os
os.system('cls')
Eh bien, voici un petit hack:
Ou pour enregistrer quelques saisies, placez ce fichier dans votre chemin de recherche python:
Ensuite, vous pouvez faire tout cela à partir de l'interprète :)
la source
"\x1B[H\x1B[J"
clear
etcls
faire. C'est la façon de le faire. (juste une impression, ou une fonction avec l'appel d'impression, n'assignant pas à une chaîne "claire", bien sûr)clear
affiche une directive qui efface l'écran. Sans supprimer le tampon de défilement. Sur mon système, il émet cette séquence de commande:\33[3J\33[H\33[2J
. C'est:[erase scrollback]
[reset cursor position]
[erase screen]
. Le[erase scrollback]
peut être omis à l'aide declear -x
.Bien qu'il s'agisse d'une question plus ancienne, j'ai pensé contribuer quelque chose résumant ce que je pense être les meilleures des autres réponses et ajouter une ride en suggérant que vous mettiez ces commandes dans un fichier et définissiez votre PYTHONSTARTUP variable d'environnement pour pointer vers elle. Étant donné que je suis actuellement sur Windows, il est légèrement biaisé de cette façon, mais pourrait facilement être incliné dans une autre direction.
Voici quelques articles que j'ai trouvés qui décrivent comment définir des variables d'environnement sur Windows:
Quand utiliser sys.path.append et lors de la modification de% PYTHONPATH% est suffisant
Comment gérer les variables d'environnement dans Windows XP
Configurer les variables d'environnement système et utilisateur
Comment utiliser le système global Variables d'environnement dans Windows
BTW, ne mettez pas de guillemets autour du chemin d'accès au fichier même s'il contient des espaces.
Quoi qu'il en soit, voici mon point de vue sur le code à insérer (ou à ajouter à votre script de démarrage Python existant):
BTW, vous pouvez également utiliser l'
__repr__
astuce de @ Triptych pour changerexit()
en justeexit
(et idem pour son aliasquit
):Enfin, la chose d'ici autre chose qui change l'interprète principal de l' invite
>>>
à CWD +>>>
:la source
__repr__
et / ou de__str__
cette façon est que si vous tapez>>> vars()
sur la console interprète, il exécutera toutes les commandes ainsi définies. Sur mon système, par exemple, il a effacé l'écran, puis a quitté la console. Cela m'a pris un certain temps pour comprendre ce qui se passait ...locals()
etglobals()
. Un simple décorateur autour de ces fonctions qui supprime le nom et le réattribue après l'invocation de la fonction est une solution possible ...Vous avez plusieurs façons de le faire sur Windows:
1. Utilisation du raccourci clavier:
2. Utilisation de la méthode d'appel système:
3. En utilisant une nouvelle ligne, imprimez 100 fois:
la source
cls
ne fonctionnera que sur Windows et rendra votre programme difficile ànewlines
multiplier , l'impression 100 est juste ... eww? Et un raccourci clavier n'est pas utilisé dans le programme.Le moyen le plus rapide et le plus simple est sans aucun doute Ctrl+L .
C'est la même chose pour OS X sur le terminal.
la source
ma façon de faire est d'écrire une fonction comme ceci:
puis appelez
clear()
pour effacer l'écran. cela fonctionne sur windows, osx, linux, bsd ... tous les OS.la source
os.name in ('linux','osx')
, et vous pourriez également vouloir ajouter'posix'
aussi.os.name == 'posix'
en python 2.7.9 et 3.4.3Voici un extrait de version multiplateforme (Windows / Linux / Mac / probablement d'autres que vous pouvez ajouter dans la vérification if) que j'ai fait en combinant les informations trouvées dans cette question:
Même idée mais avec une cuillère de sucre syntaxique:
la source
L'essuie-glace est cool, c'est une bonne chose, je n'ai pas besoin de taper '()' autour. Voici une légère variation
L'utilisation est assez simple:
la source
class cls
.class Cls
êtrecls
.cls = Cls()
class cls
et ensuitecls=cls()
.C'est la chose la plus simple que vous puissiez faire et elle ne nécessite aucune bibliothèque supplémentaire. Il effacera l'écran et retournera
>>>
dans le coin supérieur gauche.la source
pour l'utilisateur mac dans le type de console python
Pour les fenêtres
la source
Voici la solution définitive qui fusionne toutes les autres réponses . Fonctionnalités:
Vous pouvez l' utiliser comme vous le souhaitez:
Vous pouvez l' importer en tant que module:
Vous pouvez l' appeler comme un script:
C'est vraiment multiplateforme ; si elle ne peut pas reconnaître votre système
(
ce
,nt
,dos
ouposix
) il retombera à l' impression des lignes vides.Vous pouvez télécharger le fichier [complet] ici: https://gist.github.com/3130325
Ou si vous cherchez simplement le code:
la source
Je ne sais pas si le "shell" de Windows le supporte, mais sous Linux:
print "\033[2J"
https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes
À mon avis, appeler
cls
avecos
est généralement une mauvaise idée. Imaginez si je parviens à modifier la commande cls ou clear sur votre système et que vous exécutez votre script en tant qu'administrateur ou root.la source
J'utilise iTerm et l'application de terminal native pour Mac OS.
Je presse juste ⌘ + k
la source
Utilisez ralenti. Il a de nombreuses fonctionnalités pratiques. Ctrl+F6, par exemple, réinitialise la console. La fermeture et l'ouverture de la console sont de bons moyens de l'effacer.
la source
F6
ne réinitialise pas la console inactive, cependantCTRL+F6
. Malheureusement, cela n'efface pas l'écran. Oh! (Python Win32 Idle versions 2.6.2, 2.7.1, 3.2).J'utilise MINGW / BASH sur Windows XP, SP3.
(collez-le dans .pythonstartup)
# Mon ctrl-l a déjà un peu fonctionné, mais cela pourrait aider quelqu'un d'autre
# laisse une invite au bas de la fenêtre ...
import import readline
readline.parse_and_bind ('\ Cl: clear-screen')
# Cela fonctionne dans BASH parce que je l'ai aussi dans .inputrc, mais pour une
raison #, il est supprimé lorsque je vais dans Python
readline.parse_and_bind ('\ Cy: kill-whole-line')
Je ne pouvais plus supporter de taper 'exit ()' et j'étais ravi des astuces de martineau / Triptych:
Je l'ai légèrement trafiqué (collé dans .pythonstartup)
la source
La commande OS
clear
sous Linux etcls
Windows génère une "chaîne magique" que vous pouvez simplement imprimer. Pour obtenir la chaîne, exécutez la commande avec popen et enregistrez-la dans une variable pour une utilisation ultérieure:Sur ma machine, la chaîne est
'\x1b[H\x1b[2J'
.la source
\x1b[H
signifie "déplacer le curseur dans le coin supérieur gauche",\x1b[2J
signifie "effacer tout l'écran". 2) Dans Windows, ANSI n'est pas reconnu, il n'y a donc probablement pas de chaîne magique.Voici deux belles façons de procéder:
1.
2.
la source
Si c'est sur mac, alors un simple
cmd + k
devrait faire l'affaire.la source
La façon la plus simple est d'utiliser le module os
la source
Cela devrait être multiplateforme, et utilise également le préféré
subprocess.call
au lieu deos.system
selon lesos.system
documents . Devrait fonctionner en Python> = 2.4.la source
Que diriez-vous de cela pour un clair
C'est à peu près aussi court que possible!
la source
Je suis nouveau sur python (vraiment vraiment nouveau) et dans l'un des livres que je lis pour me familiariser avec le langage qu'ils enseignent comment créer cette petite fonction pour effacer la console du backlog visible et des commandes et impressions passées:
Ouvrez le shell / Créez un nouveau document / Créez une fonction comme suit:
Enregistrez-le dans le dossier lib dans votre répertoire python (le mien est C: \ Python33 \ Lib) La prochaine fois que vous voudrez effacer votre console, appelez simplement la fonction avec:
c'est tout. PS: vous pouvez nommer votre fonction comme vous le souhaitez. Iv 'a vu des gens utiliser "wiper" "wipe" et variations.
la source
J'utilise Spyder (Python 2.7) et pour nettoyer la console d'interprétation j'utilise soit
%clair
cela oblige la ligne de commande à aller en haut et je ne verrai pas les anciennes commandes précédentes.
ou je clique sur "option" dans l'environnement de la console et sélectionne "Redémarrer le noyau" qui supprime tout.
la source
Je suis peut-être en retard, mais voici un moyen très simple de le faire
Type:
Alors quoi que vous vouliez pour effacer l'écran, tapez simplement votre code
Le meilleur moyen possible! (Crédit: https://www.youtube.com/watch?annotation_id=annotation_3770292585&feature=iv&src_vid=bguKhMnvmb8&v=LtGEp9c6Z-U )
la source
Entrez simplement
la source
Si vous n'avez pas besoin de le faire via le code, appuyez simplement sur CTRL + L
la source
Arch Linux (testé
xfce4-terminal
avec Python 3):... ajouté à
~/.pythonrc
clear()
efface l'écranwipe()
efface tout le tampon du terminalla source
EDIT: Je viens de lire "Windows", c'est pour les utilisateurs de Linux, désolé.
En bash:
Enregistrez-le sous "whatyouwant.sh", chmod + x puis exécutez:
ou autre chose que python (inactif, peu importe). Cela vous demandera si vous voulez réellement quitter, sinon il réexécutera python (ou la commande que vous avez donnée en paramètre).
Cela effacera tout, l'écran et toutes les variables / objets / tout ce que vous avez créé / importé en python.
En python, tapez simplement exit () lorsque vous souhaitez quitter.
la source
OK, c'est donc une réponse beaucoup moins technique, mais j'utilise le plugin Python pour Notepad ++ et il s'avère que vous pouvez simplement effacer la console manuellement en cliquant avec le bouton droit dessus et en cliquant sur "effacer". J'espère que cela aide quelqu'un là-bas!
la source