내부 파이썬 코드에서 stdin에서 매개 변수를 가져 오는 이진 프로그램을 실행하려고합니다. 하위 프로세스 모듈을 사용하면 다음과 같이 간단해야합니다.subprocess.Popen 및 버퍼 처리 된 프로세스 출력
import subprocess
command = [ 'my_program' ]
p = subprocess.Popen(command, \
stdin = subprocess.PIPE, stdout = subprocess.PIPE, \
env={ "GFORTRAN_UNBUFFERED_ALL": "1"})
p.stdin.write (stdin_stuff)
while True:
o = p.stdout.readline()
if p.poll() != None:
break
# Do something with stdout
이제 프로그램을 시작하지만 파이썬 스크립트가 그냥 멈 춥니 다. 이것은 gfortran (my_program을 컴파일하여 stdout 스트림을 버퍼링하는 데 사용됩니다 .gfortran은 GFORTRAN_UNBUFFERED_ALL 환경 변수를 사용할 수 있도록 허용 함), 포트란 코드에서 FLUSH() 내장 함수를 사용할 수 있음을 이해합니다. 하지만 여전히 운 : 파이썬 코드는 여전히 응답하지
옆에있는 표시를 "확인"하여 원하는 대답을 수락 할 수 있습니다. 이 사이트에서 정중 한 것으로 간주되므로 요청한 질문에 대해 가장 좋아하는 답변을 확인하십시오. –