it-swarm.dev

Cancella schermo nella shell

Solo una domanda veloce:
Come si cancella lo schermo nella shell? Ho visto modi come:

import os
os.system('cls')

Questo apre semplicemente il cmd di Windows, cancella lo schermo e si chiude ma Voglio che la finestra di Shell venga cancellata
(PS: non so che questo aiuti, ma sto usando la versione 3.3.2 di Python)
Grazie :)

57
josh

Per OS X, puoi usare il modulo subprocess e chiamare "cls" da Shell:

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

Per evitare che '0' venga visualizzato nella parte superiore della finestra, sostituire la seconda riga con:

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

Per linux, devi sostituire il comando cls con clear

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

Che mi dici della scorciatoia CTRL+L?

Funziona per tutti gli shell, ad es. Python, Bash, MySQL, MATLAB, ecc.

64
Shafiq
import os

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

Il tipo di cosa che stai cercando si trova nel modulo curses.

cioè.

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

Nota importante

La cosa importante da ricordare è prima di ogni uscita, è necessario ripristinare il terminale in una modalità normale, questo può essere fatto con le seguenti linee:

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

Se non lo fai, otterrai ogni sorta di strano comportamento. Per garantire che ciò avvenga sempre, suggerirei di utilizzare il modulo atexit, ad esempio:

import atexit

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

Probabilmente lo farà bene.

10
Steve Barnes

Oltre a essere una grande libreria CLI completa, click fornisce anche una funzione clear() indipendente dalla piattaforma:

import click
click.clear()
6
Martin Valgur

usando windows 10 e pyhton3.5 ho testato molti codici e nulla mi ha aiutato più di questo:

Prima definisci una funzione semplice, questa funzione stamperà 50 nuove righe (il numero 50 dipenderà dal numero di linee che puoi vedere sullo schermo, così puoi cambiare questo numero)

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

quindi chiamalo tutte le volte che vuoi o hai bisogno

cls()
4
sami.almasagedi

Ecco alcune opzioni che è possibile utilizzare su Windows

Prima opzione:

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

>>> cls()

Seconda opzione:

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

>>> cls()

Terza opzione se si è in Python REPL finestra:

Ctrl+L
4
Vlad Bezden

Se stai usando il terminale Linux per accedere a python, allora cntrl + l è la soluzione migliore per cancellare lo schermo

3
HMS

Un modo più semplice per cancellare uno schermo mentre si utilizza python Ctrl + L sebbene funzioni per Shell e altri programmi.

3
BioinfoNerd

Command+K funziona bene in OSX per cancellare schermo.

Shift+Command+K per cancellare solo il buffer scrollback.

2
Ayer

os.system('cls') funziona bene quando li apro. Si apre in stile cmd.

1
Phich

Sottoprocesso consente di chiamare "cls" per Shell.

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

È semplice come posso farcela. Spero che funzioni per te! 

1
Seth Connell
import curses
stdscr = curses.initscr()
stdscr.clear()
1
sl1ng5h0t
  1. puoi usare Window o Linux Os

    import os
    os.system('cls')
    os.system('clear')
    
  2. puoi usare il modulo subprocess

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

Sto usando una classe che usa solo uno dei metodi sopra descritti dietro le quinte ... Ho notato che funziona su Windows e Linux ... Mi piace usarlo anche perché è più semplice digitare clear () invece di system ('clear' ) o os.system ('clear')

pip3 install clear-screen

from clear_screen import clear

e poi quando vuoi cancellare la Shell:

clear()
0