Comment vider la console de l'interprète?
comme la plupart des développeurs Python, je garde généralement une fenêtre de console ouverte avec l'interpréteur Python pour tester les commandes, dir() stuff, help() stuff, etc.
comme n'importe quelle console, après un certain temps le retard visible des commandes passées et des impressions devient encombré, et parfois déroutant quand ré-exécute la même commande plusieurs fois. Je me demande si, et comment, nettoyer la console de l'interpréteur Python.
j'ai entendu parler de faire un système appelez et appelez cls
sur Windows ou clear
sur Linux, mais j'espérais qu'il y avait quelque chose que je pouvais commander à l'interpréteur lui-même de faire.
Note: je tourne sur Windows, donc Ctrl+L ne fonctionne pas.
30 réponses
Comme vous l'avez mentionné, vous pouvez faire un appel système:
Pour Windows
>>> import os
>>> clear = lambda: os.system('cls')
>>> clear()
Pour Linux la lambda devient
>>> clear = lambda: os.system('clear')
voici quelque chose de pratique qui est un peu plus cross-plate-forme
import os
def cls():
os.system('cls' if os.name=='nt' else 'clear')
# now, to clear the screen
cls()
Eh bien, voici un hack rapide:
>>> clear = "\n" * 100
>>> print clear
>>> ...do some other stuff...
>>> print clear
ou pour sauver un peu de frappe, mettez ce fichier dans votre chemin de recherche python:
# wiper.py
class Wipe(object):
def __repr__(self):
return '\n'*1000
wipe = Wipe()
alors vous pouvez le faire à partir de l'interprète tout ce que vous aimez:)
>>> from wiper import wipe
>>> wipe
>>> wipe
>>> wipe
bien qu'il s'agisse d'une question plus ancienne, j'ai pensé que je pourrais contribuer quelque chose résumant ce que je pense être la meilleure des autres réponses et ajouter une ride de ma propre en suggérant que vous mettez ces commandes dans un fichier et définissez votre variable d'environnement PYTHONSTARTUP pour le pointer vers elle. Puisque je suis sur les fenêtres en ce moment, c'est un peu biaisé de cette façon, mais pourrait facilement être incliné dans une autre direction.
Voici quelques articles que j'ai trouvé qui décrivent comment définir variables d'environnement sur Windows:
quand utiliser sys.chemin.ajouter et modifier %PYTHONPATH% est suffisant
Comment Gérer les Variables d'Environnement de Windows XP
configuration des Variables du système et de L'environnement de L'utilisateur "1519150920
Comment Utiliser le Système Global des Variables d'Environnement dans Fenêtres
BTW, ne mettez pas de guillemets autour du chemin d'accès au fichier, même si il a des espaces.
quoi qu'il en soit, voici mon point de vue sur le code à mettre en (ou ajouter à votre script de démarrage existant) Python:
# ==== pythonstartup.py ====
# add something to clear the screen
class cls(object):
def __repr__(self):
import os
os.system('cls' if os.name == 'nt' else 'clear')
return ''
cls = cls()
# ==== end pythonstartup.py ====
BTW, vous pouvez également utiliser @ Triptyque __repr__
astuce pour changer exit()
en juste exit
(et idem pour son alias quit
):
class exit(object):
exit = exit # original object
def __repr__(self):
self.exit() # call original
return ''
quit = exit = exit()
enfin, voici quelque chose d'autre qui change le prompt de l'interprète principal de >>>
à cwd + >>>
:
class Prompt:
def __str__(self):
import os
return '%s >>> ' % os.getcwd()
import sys
sys.ps1 = Prompt()
del sys
del Prompt
vous avez plusieurs façons de le faire sur Windows:
1. En utilisant le raccourci clavier:
Press CTRL + L
2. Utilisation de la méthode System invoke:
import os
cls = lambda: os.system('cls')
cls()
3. À l'aide de la nouvelle ligne d'impression de 100 fois:
cls = lambda: print('\n'*100)
cls()
la manière la plus rapide et la plus facile sans aucun doute est Ctrl + L .
c'est la même chose pour OS X sur le terminal.
ma façon de faire c'est d'écrire une fonction comme ceci:
import os
import subprocess
def clear():
if os.name in ('nt','dos'):
subprocess.call("cls")
elif os.name in ('linux','osx','posix'):
subprocess.call("clear")
else:
print("\n") * 120
clear()
pour effacer l'écran.
cela fonctionne sur windows, osx, linux, bsd... tous les Systèmes d'exploitation.
d'essuie-glace est cool, de la bonne chose à propos de il est je n'ai pas de type '()' autour d'elle. Voici une légère variation par rapport à elle
# wiper.py
import os
class Cls(object):
def __repr__(self):
os.system('cls')
return ''
l'usage est assez simple:
>>> cls = Cls()
>>> cls # this will clear console.
Voici la solution définitive qui fusionne toutes les autres réponses . Features:
- vous pouvez copier-coller le code dans votre shell ou script.
-
Vous pouvez utiliser comme vous le souhaitez:
>>> clear() >>> -clear >>> clear # <- but this will only work on a shell
-
vous pouvez importer il comme un module:
>>> from clear import clear >>> -clear
-
Vous pouvez appel sous la forme d'un script:
$ python clear.py
-
Il est multiplateforme ; si elle ne peut pas reconnaître votre système
(ce
,nt
,dos
ouposix
) il retombera à l'impression de lignes vierges.
vous pouvez télécharger le fichier [complet] ici: https://gist.github.com/3130325
Ou si vous cherchez juste le code:
class clear:
def __call__(self):
import os
if os.name==('ce','nt','dos'): os.system('cls')
elif os.name=='posix': os.system('clear')
else: print('\n'*120)
def __neg__(self): self()
def __repr__(self):
self();return ''
clear=clear()
utiliser inactif. Il a de nombreuses fonctionnalités pratiques. Ctrl+F6 , par exemple, réinitialise la console. Fermer et ouvrir la console sont de bons moyens de la nettoyer.
j'utilise iTerm et le natif de terminal app pour Mac OS.
je viens de presse + k
Je ne suis pas sûr que le "shell" de Windows supporte cela, mais sur Linux:
print "3[2J"
https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes
à mon avis, appeler cls
par os
est une mauvaise idée en général. Imaginez si je réussis à changer la commande cls ou clear sur votre système, et que vous exécutez votre script en tant qu'administrateur ou root.
J'utilise MINGW/BASH sur Windows XP, SP3.
(bâton de ce dans .pythonstartup)
# Mon ctrl-l déjà travaillé, mais cela peut aider quelqu'un d'autre
# feuilles invite au bas de la fenêtre...
import readline
readline.parse_and_bind('\C-l: effacer l'écran)
# Ceci fonctionne dans BASH parce que j'en ai une dans .inputrc, mais pour certains
# raison, il est perdu quand je vais dans Python
readline.parse_and_bind('\C-y: tuer-tout-line")
Je ne supportais plus de taper "exit ()" et j'étais ravi des astuces de martineau / Triptych:
Je l'ai légèrement trafiqué (collé .pythonstartup)
class exxxit():
"""Shortcut for exit() function, use 'x' now"""
quit_now = exit # original object
def __repr__(self):
self.quit_now() # call original
x = exxxit()
Py2.7.1>help(x)
Help on instance of exxxit in module __main__:
class exxxit
| Shortcut for exit() function, use 'x' now
|
| Methods defined here:
|
| __repr__(self)
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| quit_now = Use exit() or Ctrl-Z plus Return to exit
voici deux belles façons de le faire:
1.
import os
# Clear Windows command prompt.
if (os.name in ('ce', 'nt', 'dos')):
os.system('cls')
# Clear the Linux terminal.
elif ('posix' in os.name):
os.system('clear')
2.
import os
def clear():
if os.name == 'posix':
os.system('clear')
elif os.name in ('ce', 'nt', 'dos'):
os.system('cls')
clear()
Voici une plate-forme croisée (Windows / Linux / Mac / probablement d'autres) Version snippet j'ai fait la combinaison des informations trouvées dans cette question:
import os
clear = lambda: os.system('cls' if os.name=='nt' else 'clear')
clear()
Que diriez-vous de ceci pour un clair
- os.system('cls')
c'est aussi court que possible!
la commande OS clear
Pour Linux et cls
Pour Windows produit 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 utilisation ultérieure:
from os import popen
with popen('clear') as f:
clear = f.read()
print clear
Sur ma machine la chaîne est '\x1b[H\x1b[2J'
.
je suis nouveau en python (vraiment vraiment nouveau) et dans un des livres que je lis pour me familiariser avec le langage, ils enseignent comment créer cette petite fonction pour effacer la console de l'arriéré visible et des commandes et des impressions passées:
coquille Ouverte / Créer un nouveau document / Création de la fonction comme suit:
def clear():
print('\n' * 50)
enregistrez-le dans le dossier lib dans votre répertoire python (le mien est C:\Python33\Lib) La prochaine fois, tu dois nettoyer ta console. il suffit d'appeler la fonction avec:
clear()
c'est ça. PS: Vous pouvez nommer votre fonction comme vous voulez. J'ai vu des gens utiliser "essuie-glace" et des variantes.
j'ai trouvé que le moyen le plus simple est juste de fermer la fenêtre et d'exécuter un module/script pour rouvrir le shell.
je suis peut-être la fin de la partie, mais ici est un moyen très facile de le faire
Type:
def cls():
os.system("cls")
alors quoi que vous vouliez effacer l'écran tapez juste votre code
cls()
la Meilleure façon possible! (Crédit: https://www.youtube.com/watch?annotation_id=annotation_3770292585&feature=iv&src_vid=bguKhMnvmb8&v=LtGEp9c6Z-U )
EDIT: je viens de lire "windows", c'est pour les utilisateurs de linux, désolé.
Dans bash:
#!/bin/bash
while [ "0" == "0" ]; do
clear
$@
while [ "$input" == "" ]; do
read -p "Do you want to quit? (y/n): " -n 1 -e input
if [ "$input" == "y" ]; then
exit 1
elif [ "$input" == "n" ]; then
echo "Ok, keep working ;)"
fi
done
input=""
done
Enregistrer en tant que "whatyouwant.sh" chmod +x il de lancer:
./whatyouwant.sh python
ou quelque chose d'autre que python (inactif, peu importe). Cela va vous demander si vous voulez vraiment quitter, si ce n'est qu'il réexécuter python (ou la commande que vous avez donné comme paramètre).
cela nettoiera tout, l'écran et toutes les variables / objet / tout ce que vous avez créé/importé en python.
en python tapez exit() quand vous voulez sortir.
il doit s'agir d'une plate-forme transversale, et utilise également le subprocess.call
préféré au lieu de os.system
comme dans le os.system
docs . Devrait fonctionner en Python > = 2.4.
import subprocess
import os
if os.name == 'nt':
def clearscreen():
subprocess.call("cls", shell=True)
return
else:
def clearscreen():
subprocess.call("clear", shell=True)
return
OK, donc c'est une réponse beaucoup moins technique, mais j'utilise le plugin Python pour Notepad++ et il s'avère que vous pouvez simplement vider la console manuellement en cliquant avec le bouton droit de la souris et en cliquant sur "Effacer". Espérons que cela aide quelqu'un là-bas!
>>> ' '*80*25
mise à JOUR : 80x25 est peu probable que la taille de la console de windows, afin d'obtenir les dimensions de la console, utiliser les fonctions de pager module. Python ne fournit rien de similaire à partir de la distribution core.
>>> from pager import getheight
>>> '\n' * getheight()
la Magie des cordes sont mentionnés ci - dessus, je crois qu'ils viennent de la base de données terminfo:
http://www.google.com/?q=x#q=terminfo
http://www.google.com/?q=x#q=tput + commande + in + unix
$ tput clair| od -t x1z 0000000 1b 5b 48 1b 5b 32 4a >.[H.[2J< 0000007
J'utilise Spyder (Python 2.7) et pour nettoyer la console d'interpréteur j'utilise soit
%
qui oblige la ligne de commandement à aller au sommet et je ne verrai pas les anciens commandements.
ou je clique sur" option "dans L'environnement de la Console et je sélectionne" redémarrer le noyau " qui supprime tout.
entrez Simplement
import os
os.system('cls') # Windows
os.system('clear') # Linux, Unix, Mac OS X
C'est la chose la plus simple que vous pouvez faire et il ne nécessite pas d'autres bibliothèques. Il nettoiera l'écran et retournera >>>
dans le coin supérieur gauche.
print("3[H3[J")
la manière la plus facile `>>> import os
clear = lambda: os.système ("clear")) clair ()