Python에서 하위 프로세스 출력 억제
Python에서는 하위 프로세스를 사용하여 다양한 시스템 명령을 실행할 수 있습니다. 이러한 하위 프로세스는 필요한 기능을 제공할 수 있지만 고유한 장황함으로 인해 출력이 복잡해지고 가독성이 저하될 수 있습니다. 특히 사용자가 제공한 예를 고려하십시오.
import subprocess text = 'Hello World.' print text subprocess.call(['espeak', text])
이 경우 eSpeak는 원하는 오디오 출력을 생성하지만 원치 않는 오류 메시지도 생성합니다. 이렇게 셸이 어수선해지면 인쇄된 텍스트에 액세스하거나 해석하기가 어려워질 수 있습니다. 불행하게도 eSpeak의 장황함을 비활성화하는 문서화된 옵션은 없습니다.
이 문제를 해결하기 위해 Python은 하위 프로세스 출력을 억제하여 사용자가 깨끗하고 깔끔한 셸을 유지할 수 있도록 하는 편리한 솔루션을 제공합니다.
해결책:
Python에 대해 다음 코드를 사용하여 하위 프로세스 출력을 DEVNULL로 리디렉션합니다. >= 3.3:
import os import subprocess retcode = subprocess.call(['echo', 'foo'], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
2.7을 포함하여 3.3 이하의 Python 버전의 경우 아래 코드를 활용하세요.
FNULL = open(os.devnull, 'w') retcode = subprocess.call(['echo', 'foo'], stdout=FNULL, stderr=subprocess.STDOUT)
이 기술은 다음 셸 명령을 효과적으로 반영합니다.
retcode = os.system("echo 'foo' > /dev/null")
위 내용은 Python의 하위 프로세스에서 원하지 않는 출력을 어떻게 억제할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!