파이썬 서브 프로세스로 코드를 작성하려고합니다.파이썬의 서브 프로세스가 성공했는지 또는 에러가 발생했는지 여부를 확인하고 싶습니다.
#code = 'print("hey")' #OK
code = 'print"hey")' #SyntaxError
with open(filename, 'w') as f:
f.write(code)
proc = s.Popen(['python',filename], stdout=s.PIPE, stderr=s.STDOUT)
stdout_v, stderr_v = proc.communicate('')
print(stdout_v.decode('utf8'))
대략 비슷합니다.
현재 정상적으로 작동하거나 구문 오류가 발생하더라도 하위 프로세스의 반환 값은 stdout_v에 포함되어 있으며이를 구분할 수 없습니다.
정상적으로 실행되면 출력을받을 수 있으며 오류가 발생하면 서브 프로세스에서 오류 메시지가 나타날 수 있습니까?
파이썬 3.5 이상을 사용할 수 있습니까? –
'proc.returncode'를 확인하십시오. –
BTW - 브라우저에서 실행할 수있는 HTML/JavaScript를 제외하고는 "스 니펫"단추를 사용하지 마십시오. '{}'버튼은 다른 언어의 코드 형식을 지정하는 데 사용해야합니다. –