developer tip

쉘에서 화면 지우기

copycodes 2020. 11. 6. 18:56
반응형

쉘에서 화면 지우기


간단한 질문입니다.
쉘에서 화면을 어떻게 지우나요? 나는 다음과 같은 방법을 보았습니다.

import os
os.system('cls')

이것은 단지 창 cmd를 열고 화면을 지우고 닫히지 만 쉘 창을 지우고 싶습니다
(PS : 도움이되지는 않지만 Python 3.3.2 버전을 사용하고
있습니다 ) 감사합니다 :)


OS X의 경우 하위 프로세스 모듈을 사용하고 쉘에서 'cls'를 호출 할 수 있습니다.

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

'0'이 창 상단에 표시되지 않도록하려면 두 번째 줄을 다음으로 바꿉니다.

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

Linux의 경우 cls명령을 다음으로 대체해야합니다.clear

tmp = sp.call('clear',shell=True)

단축키 CTRL+는 L어떻습니까?

Python, Bash, MySQL, MATLAB 등 모든 셸에서 작동합니다.


import os

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

당신이 찾고있는 것은 curses 모듈에서 찾을 수 있습니다.

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

중요 사항

기억해야 할 중요한 사항은 종료하기 전에 터미널을 일반 모드로 재설정해야한다는 것입니다. 다음 줄을 사용하여 수행 할 수 있습니다.

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

그렇지 않으면 온갖 이상한 행동을하게 될 것입니다. 이것이 항상 수행되도록하기 위해 다음과 같은 atexit 모듈을 사용하는 것이 좋습니다.

import atexit

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

아마 멋지게 할 것입니다.


다음은 Windows에서 사용할 수있는 몇 가지 옵션입니다.

첫 번째 옵션 :

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

>>> cls()

두 번째 옵션 :

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

>>> cls()

Python REPL 창에있는 경우 세 번째 옵션 :

Ctrl+L

다재다능한 CLI 라이브러리 click일뿐만 아니라 플랫폼에 구애받지 않는 clear()기능 도 제공 합니다.

import click
click.clear()

이 기능은 모든 OS (Unix, Linux, macOS 및 Windows)
Python 2 및 Python 3에서 작동합니다.

import platform    # For getting the operating system name
import subprocess  # For executing a shell command

def clear_screen():
    """
    Clears the terminal screen.
    """

    # Clear command as function of OS
    command = "cls" if platform.system().lower()=="windows" else "clear"

    # Action
    return subprocess.call(command) == 0

In windows the command is cls, in unix-like systems the command is clear.
platform.system() returns the platform name. Ex. 'Darwin' for macOS.
subprocess.call() performs a system call. Ex. subprocess.call(['ls','-l'])


An easier way to clear a screen while in python is to use Ctrl + L though it works for the shell as well as other programs.


If you are using linux terminal to access python, then cntrl+l is the best solution to clear screen


using windows 10 and pyhton3.5 i have tested many codes and nothing helped me more than this:

First define a simple function, this funtion will print 50 newlines;(the number 50 will depend on how many lines you can see on your screen, so you can change this number)

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

then just call it as many times as you want or need

cls()

Command+K works fine in OSX to clear screen.

Shift+Command+K to clear only the scrollback buffer.


import curses
stdscr = curses.initscr()
stdscr.clear()

Subprocess allows you to call "cls" for Shell.

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

That's as simple as I can make it. Hope it works for you!


  1. you can Use Window Or Linux Os

    import os
    os.system('cls')
    os.system('clear')
    
  2. you can use subprocess module

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

os.system('cls') works fine when I open them. It opens in cmd style.


I am using a class that just uses one of the above methods behind the scenes... I noticed it works on Windows and Linux... I like using it though because it's easier to type clear() instead of system('clear') or os.system('clear')

pip3 install clear-screen

from clear_screen import clear

and then when you want to clear the shell:

clear()

참고URL : https://stackoverflow.com/questions/18937058/clear-screen-in-shell

반응형