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

파이썬에서 화면 지우기 방법 총정리: os 모듈부터 subprocess까지

파이썬 인터랙티브 셸이나 터미널에서 작업하다 보면 출력 결과가 계속 쌓여서 화면이 어수선해지고 원하는 내용을 확인하기 어려워질 때가 많습니다. 이런 경우 대부분 Ctrl + L 키를 눌러 화면을 깨끗하게 지웁니다.

하지만 파이썬 스크립트 실행 중에 화면을 지우고 싶다면 이야기가 달라집니다. 파이썬에는 화면을 지우는 전용 내장 키워드나 함수, 메서드가 제공되지 않기 때문에 직접 코드를 작성해야 합니다.

화면 지우기 구현 단계

스크립트에서 화면을 지우려면 아래 단계를 순서대로 따르면 됩니다.

1단계 - 먼저 from os import system으로 시스템 호출 기능을 임포트합니다.
2단계 - 화면을 지우는 역할을 할 함수를 정의합니다.
3단계 - 운영체제에 맞게 리눅스/macOS에서는 'clear', 윈도우에서는 'cls'를 인자로 전달하여 시스템 명령을 호출합니다.
4단계 - 반환되는 값을 언더스코어(_) 변수에 저장합니다. 언더스코어를 사용하는 이유는 파이썬 셸이 항상 마지막 출력값을 언더스코어에 저장하기 때문입니다.
5단계 - 마지막으로 해당 함수를 호출하면 화면이 지워집니다.

예제 코드 1: os 모듈 활용

from os import system, name
from time import sleep

# 화면 지우기 함수 정의
def screen_clear():
   if name == 'nt':
      _ = system('cls')   # 윈도우(Windows)
   else:
      _ = system('clear') # mac 및 linux(os.name == 'posix')

# 텍스트 출력
print('Hi !! I am Python\n'*10)
sleep(2)

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

실행 결과

위 코드를 실행하면 "Hi !! I am Python" 문구가 10번 출력된 뒤 2초 후에 화면이 깨끗하게 지워집니다.

예제 코드 2: subprocess 모듈 활용

os 모듈 대신 subprocess 모듈의 call() 함수를 사용해도 동일한 결과를 얻을 수 있습니다.

import os
from subprocess import call
from time import sleep

def screen_clear():
   _ = call('clear' if os.name =='posix' else 'cls')

print('Hi !! I am Python\n'*10)
# 출력 후 2초 대기
sleep(2)
# 위에서 정의한 함수 호출
screen_clear()

실행 결과

이 역시 첫 번째 예제와 마찬가지로 문구가 출력된 뒤 일정 시간이 지나면 화면이 자동으로 지워집니다.

정리

파이썬에는 화면을 지우는 내장 기능이 없지만, os.system()이나 subprocess.call()을 활용하면 간단히 구현할 수 있습니다. 핵심은 운영체제를 판별하여 윈도우에서는 cls, 리눅스/macOS에서는 clear 명령을 실행하는 것입니다. 반복적으로 사용한다면 위처럼 함수로 만들어 두면 코드 재사용성도 높아집니다.