[python] 쉘에서 화면 지우기

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

import os
os.system('cls')

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



답변

macOS / 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

Windows에서 명령은 cls이고, 유닉스 계열 시스템에서는 명령이 clear입니다.
platform.system()플랫폼 이름을 반환합니다. 전의. 'Darwin'macOS 용.
subprocess.call()시스템 호출을 수행합니다. 전의.subprocess.call(['ls','-l'])