Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 화면을 지우는 방법 총정리

파이썬으로 프로그램을 작성하다 보면 출력 결과가 계속 쌓여서 화면을 깨끗하게 정리하고 싶은 순간이 있습니다. 대화형 셸(인터프리터)에서는 Ctrl + L 키를 눌러 간단히 화면을 지울 수 있지만, 프로그램 실행 중에는 이 방법을 사용할 수 없습니다.

예를 들어, 프로그램의 출력량이 많거나 특정 시점마다 화면을 초기화하고 새로운 내용을 표시하고 싶다면, 파이썬 스크립트 안에서 직접 화면을 지우는 명령을 실행해야 합니다. 이럴 때 유용한 것이 바로 OS 모듈의 system() 함수입니다.

운영체제별 화면 지우기 명령

운영체제마다 화면을 지우는 셸 명령이 다르기 때문에, 플랫폼에 맞는 명령어를 전달해야 합니다.

  • macOS / Linux: clear 명령 사용 (이 경우 os.name 값은 'posix')
  • Windows: cls 명령 사용 (이 경우 os.name 값은 'nt')

또한 예제 코드에서는 언더스코어(_) 변수를 사용하는데, 이 변수는 인터프리터에서 마지막으로 평가된 표현식의 값을 저장하는 특수한 역할을 합니다. 여기서는 os.system()의 반환값을 담아두는 용도로 활용됩니다.

실전 예제 코드

아래 코드는 운영체제를 자동으로 판별하여 적절한 명령으로 화면을 지우는 함수를 구현한 예제입니다.

import os
from time import sleep

# 화면 지우기 함수
def screen_clear():
    # mac과 linux인 경우 (os.name이 'posix')
    if os.name == 'posix':
        _ = os.system('clear')
    else:
        # windows 플랫폼인 경우
        _ = os.system('cls')

# 현재 플랫폼 정보와 출력 내용 표시
print("현재 플랫폼: ", os.name)
print("많은 출력\n" * 5)

# 화면을 지우기 전 5초 대기
sleep(5)

# 위에서 정의한 함수 호출
screen_clear()

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

현재 플랫폼: nt
많은 출력
많은 출력
많은 출력
많은 출력
많은 출력

출력된 내용은 5초 후 screen_clear() 함수가 호출되면서 결과 창에서 모두 사라지고 화면이 깨끗해집니다. 이처럼 time.sleep()과 함께 활용하면 일정 시간 동안만 결과를 보여준 뒤 화면을 자동으로 정리하는 프로그램을 만들 수 있습니다.

참고: IDE 환경에서의 주의점

Jupyter Notebook이나 일부 통합 개발 환경(IDE)에서는 os.system('cls')os.system('clear')가 의도대로 작동하지 않을 수 있습니다. 이런 환경에서는 각 도구가 제공하는 자체적인 화면 정리 기능(예: Jupyter의 셀 삭제, IPython의 %clear 매직 명령)을 사용하는 것이 좋습니다.