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.

241
demandé sur martineau 2009-02-06 00:19:20

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')
317
répondu Ryan Duffield 2018-08-06 17:02:56

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()
157
répondu popcnt 2015-10-21 09:55:54

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
78
répondu Triptych 2009-02-05 21:29:52

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
27
répondu martineau 2017-05-23 12:10:27

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()
16
répondu Vlad Bezden 2016-06-20 14:46:29

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.

14
répondu Alex K 2015-08-28 21:32:00

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.

10
répondu MartinUbuntu 2017-10-18 15:22:07

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.
7
répondu Amol 2012-02-09 08:57:46

Voici la solution définitive qui fusionne toutes les autres réponses . Features:

  1. vous pouvez copier-coller le code dans votre shell ou script.
  2. Vous pouvez utiliser comme vous le souhaitez:

    >>> clear()
    >>> -clear
    >>> clear  # <- but this will only work on a shell
    
  3. vous pouvez importer il comme un module:

    >>> from clear import clear
    >>> -clear
    
  4. Vous pouvez appel sous la forme d'un script:

    $ python clear.py
    
  5. Il est multiplateforme ; si elle ne peut pas reconnaître votre système

    ( ce , nt , dos ou posix ) 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()
5
répondu Alba Mendez 2012-11-06 12:52:16

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.

4
répondu S.Lott 2014-04-11 23:36:15

j'utilise iTerm et le natif de terminal app pour Mac OS.

je viens de presse + k

4
répondu Jorge E. Hernández 2016-05-16 13:48:41

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.

3
répondu Peter G. Marczis 2015-06-28 21:32:01

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
2
répondu AAAfarmclub 2011-11-08 21:57:30

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()
2
répondu userend 2016-03-28 14:12:14

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()
2
répondu Pitto 2018-08-31 10:45:00

Que diriez-vous de ceci pour un clair

- os.system('cls')

c'est aussi court que possible!

1
répondu Dennis Kean 2011-11-02 21:56:20

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' .

1
répondu larsr 2011-12-11 11:19:25

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.

1
répondu Adriana 2013-03-25 20:00:24

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.

1
répondu Seymour 2013-09-17 10:00:57

utilisez ceci..

print '\n'*1000

1
répondu user1474157 2014-05-19 06:15:17

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 )

1
répondu stallion093 2016-08-17 00:05:00

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.

0
répondu Andrea Ambu 2009-02-05 23:51:51

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
0
répondu Acorn 2011-03-20 14:51:23

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!

0
répondu guest12345 2013-07-08 21:24:28
>>> ' '*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()
0
répondu anatoly techtonik 2013-10-30 04:48:37

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

0
répondu tput-guest 2014-01-18 21:54:03

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.

0
répondu Youness 2015-04-08 16:35:45

entrez Simplement

import os
os.system('cls') # Windows
os.system('clear') # Linux, Unix, Mac OS X
0
répondu Anynomous 2018-04-10 22:00:09

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")
0
répondu Denis Rasulev 2018-05-28 06:54:38

la manière la plus facile `>>> import os

clear = lambda: os.système ("clear")) clair ()

0
répondu Bhaskar Mishra 2018-07-19 06:17:04