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

Python에서 파일이 터미널과 연결되어 있는지 확인하는 방법

isatty() 함수로 터미널 연결 여부 확인하기

Python에서 현재 실행 중인 스크립트가 터미널과 연결되어 있는지 확인하려면 isatty() 함수를 사용할 수 있습니다. 이 함수는 표준 출력(stdout)이 터미널에 직접 연결되어 있으면 True를, 파이프나 파일 등으로 리다이렉션되어 있으면 False를 반환합니다.

예제 코드는 다음과 같습니다.

import sys
if sys.stdout.isatty():
    print("터미널 안에서 실행 중입니다!")
else:
    print("파이프로 연결된 출력입니다")

실행 결과

위 코드를 터미널에서 직접 실행하면 다음과 같은 결과가 출력됩니다.

"터미널 안에서 실행 중입니다!"

반대로 출력을 파일이나 다른 프로그램으로 리다이렉션하면(예: python script.py > output.txt) "파이프로 연결된 출력입니다"라는 메시지가 출력됩니다.

활용 사례

이 기법은 다음과 같은 상황에서 유용하게 활용됩니다.

  • 터미널에서 실행할 때만 색상이나 진행 상태 표시 등의 포맷팅을 적용하고 싶을 때
  • 출력이 파일이나 파이프로 전달될 때는 일반 텍스트만 남기고 싶을 때
  • 스크립트가 대화형 모드인지 자동화 모드인지 판단해야 할 때