Comme la plupart des développeurs Python, je garde généralement une fenêtre de console ouverte avec l'interpréteur Python exécuté pour tester les commandes, dir()
stuff, help() stuff
, etc.
Comme toute console, après un certain temps, l'arriéré visible des commandes et impressions précédentes devient encombré et parfois source de confusion lorsque vous réexécutez plusieurs fois la même commande. Je me demande si et comment effacer la console d'interprétation Python.
J'ai entendu parler de faire un appel système et d'appeler soit cls
sous Windows, soit clear
sous Linux, mais j'espérais pouvoir faire exécuter à l'interprète quelque chose que je pouvais commander.
Note: Je tourne sous Windows, donc Ctrl+L
ne fonctionne pas.
Comme vous l'avez mentionné, vous pouvez effectuer un appel système:
Pour les fenêtres
>>> import os
>>> clear = lambda: os.system('cls')
>>> clear()
Pour Linux, le lambda devient
>>> clear = lambda: os.system('clear')
voici quelque chose de pratique qui est un peu plus multi-plateforme
import os
def cls():
os.system('cls' if os.name=='nt' else 'clear')
# now, to clear the screen
cls()
Eh bien, voici un petit hack:
>>> clear = "\n" * 100
>>> print clear
>>> ...do some other stuff...
>>> print clear
Ou pour enregistrer des données en tapant, placez ce fichier dans votre chemin de recherche python:
# wiper.py
class Wipe(object):
def __repr__(self):
return '\n'*1000
wipe = Wipe()
Ensuite, vous pouvez faire tout ce que vous voulez à partir de l'interprète :)
>>> from wiper import wipe
>>> wipe
>>> wipe
>>> wipe
Bien qu’il s’agisse d’une question plus ancienne, j’ai pensé que j’apporterais une contribution résumant ce que je pense être la meilleure des autres réponses et que j’ajoute une erreur en suggérant que vous mettiez ces commandes dans un fichier et que vous définissiez votre PYTHONSTARTUP. variable d'environnement pour y pointer. Depuis que je suis sur Windows pour le moment, 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 sous Windows:
Quand utiliser sys.path.append et quand modifier% PYTHONPATH% est suffisant
Comment gérer les variables d'environnement dans Windows XP
Configuration des variables système et de l'environnement utilisateur
Comment utiliser les variables d'environnement système global sous Windows
BTW, ne mettez pas de guillemets autour du chemin du 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 existant) Python script de démarrage:
# ==== 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 ====
En passant, vous pouvez aussi utiliser @ Triptych__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 modifie l'invite d'interprète principale de >>>
en 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 sous Windows:
Press CTRL + L
import os
cls = lambda: os.system('cls')
cls()
cls = lambda: print('\n'*100)
cls()
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.
ma façon de faire est d'écrire une fonction comme celle-ci:
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
puis appelez clear()
pour effacer l'écran. cela fonctionne sur windows, osx, linux, bsd ... tous les systèmes d'exploitation.
Wiper est cool, ce qui est bien, c'est que je n'ai pas à taper '()' autour. Voici une légère variation à cela
# wiper.py
import os
class Cls(object):
def __repr__(self):
os.system('cls')
return ''
L'utilisation est assez simple:
>>> cls = Cls()
>>> cls # this will clear console.
Voici un multiplate-forme (Windows/Linux/Mac/Probablement d'autres que vous pouvez ajouter dans l'extrait de vérification if) que j'ai créée en combinant des informations trouvées dans cette question:
import os
clear = lambda: os.system('cls' if os.name=='nt' else 'clear')
clear()
Même idée mais avec une cuillère de sucre syntaxique:
import subprocess
clear = lambda: subprocess.call('cls||clear', Shell=True)
clear()
pour l'utilisateur mac à l'intérieur du type de console python
import os
os.system('clear')
pour les fenêtres
os.system('cls')
Voici la solution définitive qui fusionne toutes les autres réponses . Fonctionnalités:
Vous pouvez utiliser à votre guise:
>>> clear()
>>> -clear
>>> clear # <- but this will only work on a Shell
Vous pouvez l'importer en tant que module:
>>> from clear import clear
>>> -clear
Vous pouvez appeler sous forme de script:
$ python clear.py
C'est vraiment multiplateforme ; s'il ne peut pas reconnaître votre système
(ce
, nt
, dos
ou posix
) il revient à l’impression de lignes vierges.
Vous pouvez télécharger le fichier [complet] ici: https://Gist.github.com/3130325
Ou si vous cherchez simplement 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()
J'utilise iTerm et l'application de terminal native pour Mac OS.
Je viens d'appuyer sur ⌘ + k
Utilisez inactif. Il a beaucoup de fonctionnalités pratiques. Ctrl+F6, par exemple, réinitialise la console. Fermer et ouvrir la console sont de bons moyens de la nettoyer.
C'est la chose la plus simple que vous puissiez faire et cela ne nécessite aucune bibliothèque supplémentaire. Cela effacera l'écran et renverra >>>
dans le coin supérieur gauche.
print("\033[H\033[J")
Je ne suis pas sûr que "Shell" de Windows supporte cela, mais sous Linux:
print "\033[2J"
https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes
À mon avis, appeler cls
avec 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écutiez votre script en tant qu'administrateur ou root.
J'utilise MINGW/BASH sous Windows XP, SP3.
(coller ceci dans .pythonstartup)
# Mon ctrl-l fonctionnait déjà, mais cela pourrait aider quelqu'un d'autre
# laisse Invite au bas de la fenêtre si ...
import readline
readline.parse_and_bind ('\ C-l: clear-screen')
# Cela fonctionne dans BASH car je l’ai aussi dans .inputrc, mais pour certains
# raison pour laquelle il est supprimé lorsque j'entre en Python
readline.parse_and_bind ('\ C-y: kill-whole-line')
Je ne supportais plus de taper 'exit ()' et j'étais ravi des astuces de martineau/Triptych:
Je l'ai cependant légèrement trafiqué (bloqué dans .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
La commande du système d'exploitation clear
sous Linux et cls
sous 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:
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'
.
Voici deux bonnes 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()
Je suis peut-être en retard mais voici un moyen très simple de le faire
Type:
def cls():
os.system("cls")
Alors quoi que vous fassiez pour effacer l'écran, tapez simplement votre code
cls()
Meilleur moyen possible! (Crédit: https://www.youtube.com/watch?annotation_id=annotation_3770292585&feature=iv&src_vid=bguKhMnvmb8&v=LtGEp9c6Z- )
Que diriez-vous de cela pour un clair
- os.system('cls')
C'est à peu près aussi court que possible!
J'utilise Spyder (Python 2.7) et je nettoie la console d'interprétation
%clair
cela oblige la ligne de commande à aller au sommet et je ne verrai pas les anciennes commandes précédentes.
ou je clique sur "option" dans l’environnement de la console et sélectionnez "Redémarrer le noyau" pour tout supprimer.
J'ai trouvé que le moyen le plus simple est simplement de fermer la fenêtre et d'exécuter un module/script pour rouvrir le shell.
juste utiliser ceci ..
print '\n'*1000
Je suis nouveau dans python (vraiment très nouveau) et, dans l'un des livres que je lis, vous familiariserez avec le langage qu'ils enseignent, comment créer cette petite fonction pour effacer de la console le retard visible et commandes passées et impressions:
Ouvrir Shell/Créer un nouveau document/Créer une fonction comme suit:
def clear():
print('\n' * 50)
Enregistrez-le dans le dossier lib de votre répertoire python (le mien est C:\Python33\Lib). La prochaine fois que vous voudrez effacer votre console, appelez simplement la fonction avec:
clear()
c'est ça. PS: vous pouvez nommer votre fonction comme vous le souhaitez. J'ai vu des gens utiliser "wiper" "wipe" et variations.
Si vous n'avez pas besoin de le faire avec du code, appuyez simplement sur CTRL + L
Si c'est sur mac, alors un simple cmd + k
devrait suffire.
Les chaînes magiques sont mentionnées ci-dessus - je crois qu'elles proviennent de la base de données terminfo:
http://www.google.com/?q=x#q=terminfo
http://www.google.com/?q=x#q=tput+command+in+unix
$ tput clear | od -t x1z 0000000 1b 5b 48 1b 5b 32 4a>. [H. [2J <0000007
Le moyen le plus simple `>>> importer os
clear = lambda: os.system ('clear') clear () `
Cela devrait être multi-plateforme et utiliser également le subprocess.call
préféré au lieu de os.system
selon le os.system
docs . Devrait fonctionner dans 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
EDIT: Je viens de lire "windows", ceci est pour les utilisateurs de Linux, désolé.
En 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
Enregistrez-le sous "whatyouwant.sh", chmod + x puis exécutez-le:
./whatyouwant.sh python
ou quelque chose d'autre que python (inactif, peu importe). Cela vous demandera si vous voulez réellement quitter, sinon, relancez 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.
Dans python, tapez simplement exit () lorsque vous souhaitez quitter.
Il suffit d'entrer
import os
os.system('cls') # Windows
os.system('clear') # Linux, Unix, Mac OS X
>>> ' '*80*25
UPDATE: il est peu probable que la taille des fenêtres de la console soit 80x25; pour obtenir les dimensions réelles de la console, utilisez les fonctions de pager module. Python ne fournit rien de similaire à partir de la distribution principale.
>>> from pager import getheight
>>> '\n' * getheight()
OK, la réponse est donc 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 dessus avec le bouton droit de la souris et en cliquant sur "effacer". J'espère que cela aide quelqu'un là-bas!