2009-05-13 6 views
49

대화 형 쉘 세션에서 리디렉션 된 stdout (예 : 다른 명령으로 파이프되었을 때)을 실행할 때 스크립트가 다르게 동작하도록하고 싶습니다.스크립트가 tty에서 실행 중인지 확인하는 방법은 무엇입니까?

파이썬 스크립트에서이 두 가지 중 어떤 것이 발생하는지 어떻게 알 수 있습니까?

기존 프로그램에서 이러한 동작의 예 : grep --color = auto는 대화 형 셸에서 실행할 때 일치를 강조 표시하지만 다른 것으로 파이프 될 때는 강조 표시하지 않습니다.

답변

59
import os, sys 
os.isatty(sys.stdout.fileno()) 

또는

sys.stdout.isatty() 
관련 문제