2010-11-24 5 views
9

파이프로만 실행해야하는 작은 파이썬 유틸리티가 있습니다. 독립 실행 형 도움말 메시지를 출력하고 싶습니다. 프로세스가 파이프로 사용되는지 여부를 프로세스가 어떻게 알 수 있습니까? sys.stdinsys.__stdin__을 비교해도 작동하지 않습니다.프로세스가 파이프로 실행되고 있는지 확인하십시오.

답변

13

당신은 isatty을 사용할 수 있습니다 : 표준 입력이 약은 파이프 외부에서 직접 사용되고 의미 청각 장애 인 경우

if sys.stdin.isatty(): 

그것은 True 될 것입니다.

+2

또한 반대의 경우 'if sys.stdout.isatty()'. – isaaclw

+0

힌트 : CI 환경 ala travis, jenkins 또는 gitlab-ci에서 Python을 시작한다면'sys.stdin.isatty()'는 항상'False'가 될 것입니다. –

관련 문제