stderr이 콘솔에 실제로 나타나는지, 또는 예를 실행할 때 생성되는 "blah"라는 프로세스를 생성하는 Python 오류가 발생하고 있는지 확실하지 않습니다. 당신이 한 것으로 ... 예제의
출력은 파이썬이 실행 스크립트가 PATH에 "ㅋ"라는이없는 경우 예상 할 수있는 OSError: [Errno 2] No such file or directory
을 높이는 것
,
나는 간단한 테스트를했고,이 같은 bash는 스크립트를 썼다, 나는 당신의 예를 반복 대신 내 스크립트 (로컬 디렉토리의 이름 fail.sh)라고 해당 스크립트의 실행 권한을 부여 후
#!/bin/bash
echo "This is stdout"
echo "This is a failure on stderr" >&2
exit 1
을 그러한 :
import subprocess
cmd = './fail.sh'
proc = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc.communicate()
이것은 예상대로 ('This is stdout\n', 'This is a failure on stderr\n')
을 반환했습니다.
아마도 여기에서 실제로보고있는 것은 어떤 프로그램을 호출하든 (그것이 아니라고해도) PATH에 존재하지 않는다는 것입니다.
또한 str
을 파이썬에서 레이블로 사용하는 것에 대한 참고 사항은 기본 제공 유형이므로 내장 변수를 "과부하"하고 싶지 않으면 변수 또는 함수의 이름으로 사용하면 안됩니다. 기능. 클래스 인 string
에 대해서도 마찬가지입니다.