web-dev-qa-db-fra.com

Écran clair dans la coquille

Juste une petite question:
Comment effacez-vous l'écran en shell? J'ai déjà vu des méthodes telles que:

import os
os.system('cls')

Cela ouvre simplement la fenêtre de commande windows, efface l'écran et ferme mais Je veux que la fenêtre Shell soit effacée
(PS: Je ne sais pas si ça aide, mais j'utilise la version 3.3.2 de Python)
Je vous remercie :)

57
josh

Pour OS X, vous pouvez utiliser le module de sous-processus et appeler «cls» à partir de Shell:

import subprocess as sp
sp.call('cls',Shell=True)

Pour éviter que "0" n'apparaisse en haut de la fenêtre, remplacez la 2ème ligne par:

tmp = sp.call('cls',Shell=True)

Pour linux, vous devez remplacer la commande cls par clear

tmp = sp.call('clear',Shell=True)
35
GalHai

Qu'en est-il du raccourci CTRL+L?

Cela fonctionne pour tous les obus, par exemple Python, Bash, MySQL, MATLAB, etc.

64
Shafiq
import os

os.system('cls')  # For Windows
os.system('clear')  # For Linux/OS X
39
Rajan Mandanka

Le type de chose que vous recherchez se trouve dans le module curses.

c'est à dire.

import curses  # Get the module
stdscr = curses.initscr()  # initialise it
stdscr.clear()  # Clear the screen

Note importante

La chose importante à retenir est qu'avant toute sortie, vous devez réinitialiser le terminal en mode normal, ceci peut être fait avec les lignes suivantes:

curses.nocbreak()
stdscr.keypad(0)
curses.echo()
curses.endwin()

Si vous ne le faites pas, vous aurez toutes sortes de comportements étranges. Pour que cela soit toujours fait, je suggérerais d'utiliser le module atexit, quelque chose comme:

import atexit

@atexit.register
def goodbye():
    """ Reset terminal from curses mode on exit """
    curses.nocbreak()
    if stdscr:
        stdscr.keypad(0)
    curses.echo()
    curses.endwin()

Sera probablement bien faire.

10
Steve Barnes

En plus d'être une excellente bibliothèque CLI polyvalente, click fournit également une fonction clear() fonction:

import click
click.clear()
6
Martin Valgur

en utilisant windows 10 et pyhton3.5 j’ai testé de nombreux codes et rien ne m’a aidé plus que cela:

Tout d’abord, définissez une fonction simple, cette fonction imprimera 50 nouvelles lignes (le nombre 50 dépendra du nombre de lignes que vous pouvez voir sur votre écran, vous pouvez donc modifier ce nombre)

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

puis appelez-le autant de fois que vous le souhaitez ou avez besoin

cls()
4
sami.almasagedi

Voici quelques options que vous pouvez utiliser sous Windows

Première option:

import os
cls = lambda: os.system('cls')

>>> cls()

Deuxième option:

cls = lambda: print('\n' * 100)

>>> cls()

Troisième option si vous êtes dans la fenêtre Python REPL:

Ctrl+L
4
Vlad Bezden

Si vous utilisez un terminal linux pour accéder à python, ctrl + l est la meilleure solution pour effacer l'écran.

3
HMS

Un moyen plus simple d'effacer un écran en Python consiste à utiliser Ctrl + L bien que cela fonctionne pour le Shell, ainsi que d'autres programmes.

3
BioinfoNerd

Command+K fonctionne correctement sous OSX pour effacer l'écran.

Shift+Command+K pour effacer uniquement le tampon de défilement.

2
Ayer

os.system('cls') fonctionne bien lorsque je les ouvre. Il s'ouvre dans le style cmd.

1
Phich

Le sous-processus vous permet d’appeler "cls" pour Shell.

import subprocess
cls = subprocess.call('cls',Shell=True)

C'est aussi simple que je peux le faire. J'espère que ça marche pour toi! 

1
Seth Connell
import curses
stdscr = curses.initscr()
stdscr.clear()
1
sl1ng5h0t
  1. vous pouvez utiliser Windows ou Linux Os

    import os
    os.system('cls')
    os.system('clear')
    
  2. vous pouvez utiliser le module de sous-processus

    import subprocess as sp
    x=sp.call('cls',Shell=True)
    
1
Rohit Parghi

J'utilise une classe qui utilise simplement l'une des méthodes ci-dessus en coulisse ... J'ai remarqué que cela fonctionne sous Windows et Linux ... J'aime bien l'utiliser car il est plus facile de taper clear () à la place de system ('clear' ) ou os.system ('clear')

pip3 install clear-screen

from clear_screen import clear

et puis quand vous voulez effacer le shell:

clear()
0
sit_on_a_pan_otis